对于一个新模块,我试图使用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"
},
不制作具有该名称的文件。
答案 0 :(得分:213)
不幸的是,npm build
已经是内部命令,如in the docs所述:
这是由npm link和npm install调用的管道命令。 通常不应直接调用。
由于该命令已存在,因此它始终会遮挡"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 ++节点插件。它没有很好地记录,因为它通常会自动发生,但如果您对source code is here感兴趣。
答案 1 :(得分:15)
脚本命名为" build"在package.json
中并不是特别的。让它运行的唯一方法是调用:
npm run-script build
There are some names which are called automatically by npm,但" build"不是其中之一。完整列表是:
prepublish
,publish
,postpublish
preinstall
,install
,postinstall
preuninstall
,uninstall
,postuninstall
preversion
,version
,postversion
pretest
,test
,posttest
prestop
,stop
,poststop
prestart
,start
,poststart
prerestart
,restart
,postrestart
preCUSTOM
和postCUSTOM
用于自定义脚本名称。答案 2 :(得分:3)
好的,要运行它自己的构建,请使用:
npm run-script build
答案 3 :(得分:3)
我遇到问题,npm run build
没有打印任何内容。最后使用npm run build --verbose
来获得我需要的输出。
答案 4 :(得分:2)