npm pack 不遵循 .npmignore

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-packagenpm将首先使用.npmignore。我的问题是为什么npm pack不遵循它?难道是我的使用方法有错误?

谢谢。

rax*_*tul 0

你的 npmjs 链接中据说

此外,除了捆绑的依赖项之外,node_modules 中的所有内容都将被忽略。npm 会自动为您处理这个问题,因此不必费心将 node_modules 添加到 .npmignore 中。

因此,如果您将“ m module ”添加为 package.json 文件中的捆绑依赖项,则 npm pack 将添加到包中。

但是,自然地,它也会将“ m module ”的依赖项添加到包文件中。硬限制依赖项需要所有硬包含依赖项。