fan*_*ard 5 node.js npm npm-pack
我的包树:
LICENSE
README.md
main.js
package.json
- node_modules
- m
foo.wasm
package.json
Run Code Online (Sandbox Code Playgroud)
我想npm pack包含不发布到 npmjs 的私有模块。node_modules/m这是我的.npmignore:
**/*
!main.js
!node_modules/m/package.json
!node_modules/m/foo.wasm
Run Code Online (Sandbox Code Playgroud)
我的.gitignore:
node_modules
Run Code Online (Sandbox Code Playgroud)
但npm pack不遵循它,只打包前四个文件。
npm notice === Tarball Contents ===
npm notice 35.1kB LICENSE
npm notice 104B README.md
npm notice 12.6kB main.js
npm notice 1.2kB package.json
Run Code Online (Sandbox Code Playgroud)
来自https://docs.npmjs.com/cli/v7/using-npm/developers#keeping-files-out-of-your-package,npm将首先使用.npmignore。我的问题是为什么npm pack不遵循它?难道是我的使用方法有错误?
谢谢。
在你的 npmjs 链接中据说
此外,除了捆绑的依赖项之外,node_modules 中的所有内容都将被忽略。npm 会自动为您处理这个问题,因此不必费心将 node_modules 添加到 .npmignore 中。
因此,如果您将“ m module ”添加为 package.json 文件中的捆绑依赖项,则 npm pack 将添加到包中。
但是,自然地,它也会将“ m module ”的依赖项添加到包文件中。硬限制依赖项需要所有硬包含依赖项。