【问题标题】:How to use one package manager for backend and frontend? (Yarn/NPM)如何为后端和前端使用一个包管理器? (纱线/NPM)
【发布时间】:2020-06-04 18:38:26
【问题描述】:

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

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

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

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

【问题讨论】:

  • 我个人会将公用文件夹与后端文件夹分开,并分别管理依赖项。这将使您更好地了解每个“项目”的依赖关系
  • 如果你使用诸如 grunt/gulp 之类的构建工具来合并/缩小你的东西,那么你可以使用 npm 安装并将你的 grunt 配置指向node_modules

标签: javascript node.js npm yarnpkg


【解决方案1】:

标准差不多是这样的:

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

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

我建议查看一个 kickstart 项目(与您正在使用的堆栈有关),例如:我使用过: Fountainjs 过去成功,或者如果喷泉不符合您的想象,请查看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

【讨论】:

    猜你喜欢
    • 2013-11-14
    • 2020-10-28
    • 2015-08-21
    • 1970-01-01
    • 1970-01-01
    • 2019-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多