我可以在发布之前检查 npm 包的内容吗?

oli*_*ren 5 node.js npm

我希望能够在 npm 包发布之前对其内容运行脚本,以查看是否存在所有必需的文件。我们最近发布了一些已发布的软件包,这些软件包缺少一些内容,因为它们与.npmignore.

这可能吗?本质上是npm install . -g通过将完全相同的内容放入/usr/local/lib/node_modules/mypackageon来实现这一点吗NPM

Jur*_*lav 8

npm pack --dry-run将把要发布的文件输出到 stderr,而不对文件系统进行任何更改。

npm notice   @some/package@0.2.38
npm notice === Tarball Contents === 
npm notice 641B  package.json      
npm notice 961B  src/index.js      
npm notice === Tarball Details === 
npm notice name:          @some/package                        
npm notice version:       0.2.38                                  
npm notice filename:      some-package-0.2.38.tgz              
npm notice package size:  1 kB                                  
npm notice unpacked size: 1.5 kB                                 
npm notice shasum:        somesha
npm notice integrity:     someothersha
npm notice total files:   2                                       
Run Code Online (Sandbox Code Playgroud)

您可以使用不存在的文件对该文件列表进行断言,例如

> npm pack --dry-run 2>&1 >/dev/null | grep src/someFileNotInPackage.js
> echo $?
1
Run Code Online (Sandbox Code Playgroud)

请注意 1,错误退出代码。

或者在确实存在的文件上:

> npm pack --dry-run 2>&1 >/dev/null | grep src/index.js
> echo $?
0
Run Code Online (Sandbox Code Playgroud)

注意 0,成功退出代码。