如何为后端和前端使用一个包管理器?(纱线/NPM)

Ken*_*ore 4 javascript node.js npm yarnpkg

以前,我将 NPM 用于服务器端,而 Bower 用于前端。NPM 将安装到该node_modules/目录,我必须.bowerrc将这些包安装到public/lib.

现在我已经开始使用 Yarn 而不是 NPM;并且由于它们几乎是 1:1 兼容的,因此这是一个平滑的变化.. 但是,现在我想知道我是否可以放弃 Bower 而只使用 Yarn 来处理所有事情。但是我没有看到(在 NPM 或 Yarn 中)将普通包安装到 node_modules 的方法,但是然后有一种单独的选项可以将一些包放入public/......类似于该--dev选项的东西,但它会是yarn add jquery --public. 这样的东西存在吗?

当然,一种选择是将所有软件包安装到public/目录中,但我认为这是一种不好的做法(如果我错了,请纠正我)。

另一种选择可能是package.jsonpublic/文件夹中有一个单独的文件夹并在其中为前端包运行单独的 Yarn 命令,但我认为它不太方便;更容易出错。

Roh*_*ner 6

规范几乎是这样的:

  1. 通过安装包 yarn
  2. 使用任务运行器(例如gulp,或模块加载器和捆绑器)webpack来创建您需要的包。
    • 这一切都取决于您的堆栈,显然还有其他的,例如在过去我使用过 .NET 的本机捆绑,您可以实现与 gulp/webpack 相同的效果……这再次由您决定。

它的要点是,将所有模块安装在一个中心位置(使用包管理器),然后让加载程序或其他进程抓取并将所需的资产移动到您需要使用它们的位置。

我建议查看一个 kickstart 项目(与您正在使用的堆栈有关),例如:我曾经成功使用过: Fountainjs,或者如果喷泉没有引起您的兴趣,请查看Yeoman(仅供参考。Fountain建立在 Yeoman 之上)

在伪命令中:

1. yarn install     /// installs all assets
2. gulp build       /// cleans out current public folder, bundles & copies new
3. gulp serve       /// runs your app
Run Code Online (Sandbox Code Playgroud)