发布后 npm 模块丢失文件
Posted
技术标签:
【中文标题】发布后 npm 模块丢失文件【英文标题】:npm module missing files after publish 【发布时间】:2018-01-01 10:44:36 【问题描述】:供参考,repo 为https://github.com/microsoftly/luis-response-builder。
node 模块文件用 tsc 生成并输出到 dist 文件夹。我有一个 prepublishOnly 步骤,它删除 dist 文件夹,运行 tsc,然后针对转译的 js 运行测试。当我发布得很好时,测试通过了。
问题是,当我在其他任何地方安装项目时,dist 文件夹只包含路径为 dist/src/index.js 的文件。
我一生都无法弄清楚为什么文件在安装时丢失,但在发布时却没有。
【问题讨论】:
【参考方案1】:引用npm-publish Documentation:
如果不存在本地
.gitignore
或.npmignore
文件,则包含包目录中的所有文件。如果两个文件都存在并且.gitignore
忽略了一个文件,但.npmignore
没有忽略,那么它将被包含。
您的存储库的 .gitignore
file 包含以下内容:
node_modules
dist
*.env
yarn-error.log
根据文档,由于 dist
被忽略,它不会与 npm publish
一起提交。
【讨论】:
【参考方案2】:查看package.json documentation about files
。
由于您没有包含files
键,它只会包含main
中指定的文件(以及一些其他默认文件)。
files
值是一个数组,因此您可以包含多个文件和/或文件夹。
例如:
files: [
"dist",
"config/somefile.js"
]
【讨论】:
你说得对,我似乎错过了他/她的.gitignore
文件。感谢您的澄清。以上是关于发布后 npm 模块丢失文件的主要内容,如果未能解决你的问题,请参考以下文章