使我的NPM包以source和dist版本提供

时间:2016-08-04 19:13:05

标签: git npm

我正在开发一个私有NPM程序包,我将其提供给使用我们的API的开发人员。由于各种原因(由管理层决定),我们的NPM存储库(Sonatype Nexus)上的软件包具有以下文件夹结构:

+- build
| |- browser.min.js
| \- node.min.js
|- docs
| \ ...
|- package.json
\- README.md

build目录中的JS文件是根据包的实际代码编译的。

构建包中还包含程序包所依赖的特定依赖项版本(例如WildEmitter的修改版本)。

为了便于发布,package.json中包含以下内容:

  ...
  "main": "build/node.min.js",
  "browser": "build/browser.min.js",
  "files": [
    "build/*.js",
    "docs/*",
    "README.md"
  ],
  ...

但是,对于软件包的内部使用,我们希望使用未编译的版本,特别是为了减少上面包含的依赖项所包含的开销。

(除此之外,我知道这不一定是打包东西的最佳方式,但除非我们没有其他选择,否则我们现在无法轻易改变它。)

我认为我可以从我们的私有Git存储库中提取包,这将为我提供包的整个代码。

但是,当NPM从Git加载时,NPM仍会读取files的{​​{1}}部分,因此它执行package.json,然后删除任何文件不存在于git clone数组中,只留下一个仅包含filesdocs/*package.json的目录。

有没有办法从Git中检出包的整个代码并保存?

1 个答案:

答案 0 :(得分:0)

最后,我决定修改我的构建过程以使其更容易。

我没有将scipts只构建到build目录并从存储库根目录开始打包,而是修改了我的构建脚本以复制README.mdpackage.json和{{ 1}}进入docs/*目录,然后到build进入该目录进行cd

这样,npm publish可以说包含目录中的所有文件。