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

How to use one package manager for backend and frontend? (Yarn/NPM)

以前我会将 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/ 目录,但我认为这是一种不好的做法(如果我错了请纠正我)。

另一种选择可能是在 public/ 文件夹中有一个单独的 package.json 和 运行 单独的 Yarn 命令在那里用于前端包,但它不太方便,我思考;更容易出错。

标准大致是这样的:

  1. 通过yarn
  2. 安装包
  3. 使用 gulp, or module loader & bundler such as webpack 等任务运行程序来创建您需要的包。
    • 这一切都取决于你的堆栈,显然还有其他的,例如过去我使用过.NET的原生捆绑,你可以实现与gulp/webpack相同的...再次这是为了你来决定。

The gist of it is, install all the modules in a central place (using a package manager), then have a loader or other process grab and move the required assets to the location that you need to use them.

我建议看一下 kickstart 项目(与您正在使用的堆栈有关)例如:我用过: Fountainjs in the past with success, or look into Yeoman 如果喷泉不合你意(仅供参考。喷泉建在 Yeoman 之上)

在伪命令中:

1. yarn install     /// installs all assets
2. gulp build       /// cleans out current public folder, bundles & copies new
3. gulp serve       /// runs your app