前端 2020-07-09 16:50:29

npm包发布时.npmrc文件被忽略

今天遇到一个问题,我们希望通过脚手架拉取的模板工程加载依赖走统一的镜像源,通过工程内置.npmrc来约束。然而模板工程新增了.npmrc文件,重新使用脚手架创建项目,却发现没有.npmrc文件。

原因:模板工程是通过npm包形式拉取,npm包发布的时候,会自动忽略.npmrc文件。

可实现方案:脚手架拉取模板工程后,再通过fs文件操作新增.npmrc。

npm包包含的文件可以通过package.json#files.npmignore.gitignore设置。

优先级package.json#files >.npmignore > .gitignore

  1. 无论如何设置以下文件总是包括:
1. package.json
2. README
3. CHANGES / CHANGELOG / HISTORY
4. LICENSE / LICENCE
5. NOTICE
6. The file in the "main" field
  1. 相反地,以下文件总是被忽略
.git
CVS
.svn
.hg
.lock-wscript
.wafpickle-N
.*.swp
.DS_Store
._*
npm-debug.log
.npmrc
node_modules
config.gypi
*.orig
package-lock.json (use shrinkwrap instead)

README, CHANGES, LICENSE & NOTICE 可以是任何其他形式或者扩展

参考资料

  1. npm-publish
  2. npm publish过滤部分文件
  3. package.json配置