对于一个新模块,我尝试使用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"
},
不会用这个名字创建文件。
5条答案
按热度按时间oxosxuxt1#
不幸的是,
npm build
已经是一个 internal 命令,如in the docs所述:这是npm link和npm install调用的plumbing命令。一般不直接调用。
因为该命令已经存在,所以它总是隐藏在您的
"build": "node build.js"
上。运行自己的脚本的完全限定的方法是使用
run-script
or its aliasrun
:npm start
和其他是一种简化的方式,但只有当现有的npm命令不像npm build
那样隐藏它时,它才是一个选项。对于后代(正如其他人所提到的那样),npm使用
npm build
来构建使用node-gyp的原生C/C++ Node插件。bf1o4zei2#
package.json
中名为“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
用于自定义脚本名称。pcrecxhr3#
好的,要单独运行构建,用途:
46qrfjad4#
npm run build
没有打印任何东西。最后使用npm run build --verbose
来获得我需要的输出。5anewei65#
Npm build需要
根目录中包含package.json文件的文件夹
尝试在package.json中使用npm脚本,如经典的npm start