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

IT技术 javascript node.js build npm
2021-02-27 11:16:18

对于一个新module,我试图在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个回答

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

这是由 npm link 和 npm install 调用的管道命令。 一般不应直接调用。

因为该命令已经存在,所以它总是隐藏在您的"build": "node build.js".

运行您自己的脚本的完全限定方式是 withrun-script或其别名run

$ npm run build

npm start和其他人是速记方式,但仅当现有的 npm 命令不像它那样隐藏它时才作为一种选择npm build


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

如果我要自己写一个包,知道该怎么做才能充满npm build意义还是很好的……
2021-04-20 11:16:18
内部命令应该重命名为_build并且npm build应该是一个快捷方式,如npm startnpm test
2021-04-26 11:16:18
某些软件包需要构建过程。当您正在运行npm install并且 npm 找到一个具有 C/C++ 绑定或通常需要 node-gyp 才能运行的包时,它就会启动npm build您可以通过简单地npm build单独运行来重建这些包
2021-05-09 11:16:18
我知道这npm build不会调用我的脚本,它用于构建包的编译组件。我仍然不确定它是如何做的:它寻找什么文件等?
2021-05-15 11:16:18
这当然是有道理的,直到您查看文档参考并看到还列出了“开始”。然而,如果我从 package.json 中取出我的“开始”脚本,它不知道该怎么做。
2021-05-15 11:16:18

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

npm run-script build

有一些名称由 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
  • preCUSTOMpostCUSTOM自定义脚本名称。

好的,要自己运行构建,请使用:

npm run-script build

Npm 构建期望

在其根目录中包含 package.json 文件的文件夹

尝试在 package.json 中使用npm 脚本,就像经典的 npm start

这意味着它npm build .应该可以工作,并且在我的情况下,npm 确实按照我的希望执行了我的“package.json”中的“build”脚本。
2021-05-11 11:16:18

我遇到了npm run build不打印任何内容的问题最终npm run build --verbose用于获得我需要的输出。