发布后 npm 模块丢失文件

npm module missing files after publish

作为参考,回购是 https://github.com/microsoftly/luis-response-builder

节点模块文件是用tsc生成的,输出到dist文件夹。我有一个 prepublishOnly 步骤删除 dist 文件夹,运行 tsc,然后针对转译后的 js 运行测试。当我发布时测试通过。

问题是,当我在其他地方安装项目时,dist 文件夹只包含路径为 dist/src/index.js.

的文件

我一辈子都弄不明白为什么文件在安装时丢失但在发布时却没有。

查看 package.json documentation about files

由于您没有包含 files 键,它只会包含 main 中指定的文件(以及其他一些默认文件)。

files 值是一个数组,因此您可以包含多个文件 and/or 个文件夹。

例如:

files: [
  "dist",
  "config/somefile.js"
]

引用自npm-publish Documentation

All files in the package directory are included if no local .gitignore or .npmignore file exists. If both files exist and a file is ignored by .gitignore but not by .npmignore then it will be included.

您的存储库 .gitignore file 包含以下内容:

node_modules
dist
*.env
yarn-error.log

由于 dist 被忽略,根据文档,它不会与 npm publish 一起提交。