npm pack/publish 不会打包 .gitignore 或 .npmrc 文件

npm pack/publish won't pack .gitignore or .npmrc files

我已经为我的公司构建了一个项目生成器。这是一个全局安装的 npm 包,当 运行 时,获取包内 /template 目录的全部内容并将其复制到用户选择的目的地。

/template 中,我有 2 个文件 npm pack 拒绝包含 在最终发布的模块中:

/template/.gitignore

/template/.npmrc

其他一切,包括其他隐藏文件,都按预期打包。

这 2 个文件不在任何根(或嵌套).gitignore 文件中,并且我没有在 npm 可能获取的任何 package.json 中手动指定任何 files 数组。

这是故意的行为https://docs.npmjs.com/misc/developers#keeping-files-out-of-your-package

解决方法是创建 .gitignore.template 并在安装时重命名

package.json 中显式添加到 files 将强制 npm pack 包含文件

"files": [
    "dist",
    "dist/template/.npmrc",
    "dist/template/.gitignore"
  ]