javascript `npm build`不运行package.json中的build脚本

0s0u357o  于 2023-05-21  发布在  Java
关注(0)|答案(5)|浏览(121)

对于一个新模块,我尝试使用npm build,而不使用gulp / Grunt /其他专门的构建工具。

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

我的build.js就是

console.log('Hello')

然而,跑步

npm build

直接退出,不打印任何内容,状态为0。
运行:

npm install

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

如何让npm运行我的构建脚本?

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

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

不会用这个名字创建文件。

oxosxuxt

oxosxuxt1#

不幸的是,npm build已经是一个 internal 命令,如in the docs所述:
这是npm link和npm install调用的plumbing命令。一般不直接调用。
因为该命令已经存在,所以它总是隐藏在您的"build": "node build.js"上。
运行自己的脚本的完全限定的方法是使用run-script or its alias run

$ npm run build

npm start和其他是一种简化的方式,但只有当现有的npm命令不像npm build那样隐藏它时,它才是一个选项。
对于后代(正如其他人所提到的那样),npm使用npm build来构建使用node-gyp的原生C/C++ Node插件。

bf1o4zei

bf1o4zei2#

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

npm run-script build

There are some names which are called automatically by npm,但“build”不是其中之一。完整列表为:

  • prepublishpublishpostpublish
  • preinstallinstallpostinstall
  • preuninstalluninstallpostuninstall
  • preversionversionpostversion
  • pretesttestposttest
  • prestopstoppoststop
  • prestartstartpoststart
  • prerestartrestartpostrestart
  • preCUSTOMpostCUSTOM用于自定义脚本名称。
pcrecxhr

pcrecxhr3#

好的,要单独运行构建,用途:

npm run-script build
46qrfjad

46qrfjad4#

npm run build没有打印任何东西。最后使用npm run build --verbose来获得我需要的输出。

5anewei6

5anewei65#

Npm build需要
根目录中包含package.json文件的文件夹
尝试在package.json中使用npm脚本,如经典的npm start

相关问题