2

我有一个 Pattern Lab edition-node-gulp设置,并想使用 NPM 来管理 UI 依赖项,如 jQuery、D3 等。Pattern Lab 的设置使得开发发生在“Source”文件夹中,该文件夹被编译并移动到“Public”文件夹中。公共文件夹的根目录在提供服务时成为应用程序的根目录。

目前,我手动包含 jQuery 等资产。我认为在用于运行所有 Pattern Lab Node 的 package.json 文件中管理像 jQuery 这样的依赖项会很棒,但是 node_modules 文件夹存在于 Public 之外,因此我无法在实时应用程序中引用它。

到目前为止,我似乎有两个选择:

  1. 按原样继续,忘记这些资产的包管理。
  2. 使用 jQuery 和其他方法在 Public 内部创建第二个 package.json,这看起来很草率。

创建第二个 package.json 这么糟糕吗?我是否没有考虑其他选择?

4

1 回答 1

0

创建第二个 package.json 并没有那么糟糕(当然,当您知道自己在做什么以及如何做时)。但是,在您的特定情况下,这不是最佳方案,因为有更好的选择。

问题是什么?将资产添加到构建输出。所以,你可以做什么:

  1. 通过安装资产npm install并将它们保存在原始 package.json
  2. 适应gulpfile.js复制输出目录中的文件。

如果第二步太麻烦/有问题,也可以用简单的 package.jsonscripts更改(添加build脚本)替换:

"scripts": {
  "gulp": "gulp -- ",
  "build": "npm run gulp && cp -R node_modules/jquery/dist/blablabla.js mypublicdir/blablabla.js"
},

然后将其作为npm run build. 如果您需要支持 Windows,您可以使用https://www.npmjs.com/package/cp-cli而不是cp.

于 2017-12-21T22:48:07.257 回答