如何在使用 NPM 命令时运行脚本?

dra*_*035 7 npm

尝试按照这些说明绑定一个调用命令的脚本license-checker,我想出了这个片段npmpackage.json

{
  "scripts": {
    "postinstall": "license-checker --json --out license-list.json",
    "poststart": "license-checker --json --out license-list.json"
  },
Run Code Online (Sandbox Code Playgroud)

不起作用。手动运行该命令会生成licence-list.json文件,但不会在安装包 ( npm i package-name --save) 时生成。为什么不?

注意:我正在尝试在 (1) 将新包安装到项目中时以及 (2) 构建项目以进行部署时运行此脚本。但是build ,文档中没有任何内容:我可以使用startpoststart尝试使用它,或者如果没有,我可以使用什么代替?

man*_*shg 0

根据 npm 文档(https://docs.npmjs.com/misc/scripts),postinstall安装包时会调用该脚本,因此postinstall当您调用时该脚本将被调用

npm install
Run Code Online (Sandbox Code Playgroud)

当你调用时它不会被调用

npm i package-name --save
Run Code Online (Sandbox Code Playgroud)

也许您可以在安装包后进行检查。

编辑:如果这样做的目的是检查添加到 package.json 中的内容,也许进行预提交检查/挂钩将是一个更好的主意,即使用https://www.npmjs.com/package/husky之类的东西