'npm build' 不会在 package.json 中运行名为 “build” 的脚本

2022-08-30 02:38:30

对于新模块,我试图在没有 gulp / Grunt / 其他专用构建工具的情况下使用 npm 构建。

"scripts": {
  "build": "node build.js"
},

我的构建.js很简单

console.log('Hello')

但是,正在运行

npm build

只需退出而不打印任何内容,状态为 0。

运行:

npm install

也做所有正常的事情,但也不运行构建.js。

如何使 npm 运行我的生成脚本?

编辑:即使是简单的bash命令似乎也不起作用,例如

"scripts": {
    "build": "touch TESTFILE"
},

不创建具有该名称的文件。


答案 1

不幸的是,它已经是一个内部命令,如文档中所述:npm build

这是由 npm 链接和 npm 安装调用的管道命令。通常不应直接调用它。

由于该命令已存在,因此它始终隐藏在 ."build": "node build.js"

运行自己的脚本的完全限定方法是使用运行脚本或其别名 run

$ npm run build

npm start其他是速记方式,但只有当现有的npm命令没有像这样隐藏它时,它才是一种选择。npm build


对于后代(如其他人所提到的)被npm用于使用node-gyp构建本机C / C++Node插件。npm build


答案 2

名为“build”的脚本在任何方面都不是特别的。让它运行的唯一方法是调用:package.json

npm run-script build

有一些名称由npm自动调用,但“build”不是其中之一。完整列表是:

  • prepublish, ,publishpostpublish
  • preinstall, ,installpostinstall
  • preuninstall, ,uninstallpostuninstall
  • preversion, ,versionpostversion
  • pretest, ,testposttest
  • prestop, ,stoppoststop
  • prestart, ,startpoststart
  • prerestart, ,restartpostrestart
  • preCUSTOM和自定义脚本名称。postCUSTOM