npm install
和 npm run build
有什么区别?
在我的项目中,当执行npm install
时,有时会出现故障,但是运行npm run build
就可以正常工作。
这两个目标 install
和 run build
的内部工作原理有什么不同?
npm install
和 npm run build
有什么区别?
在我的项目中,当执行npm install
时,有时会出现故障,但是运行npm run build
就可以正常工作。
这两个目标 install
和 run build
的内部工作原理有什么不同?
npm install
命令将依赖项安装到您正在开发的Node.js项目的 node_modules/
目录中。您也可以在另一个 Node.js 项目(module) 上调用 install
命令,以将其安装为您项目的依赖项。
npm run build
命令不起作用,除非您在 package.json 文件中指定了“build”是做什么的。它允许您在项目在另一个项目中使用之前执行任何必要的构建/准备任务。
npm build
是一个内部命令,并由 link
和 install
命令调用,根据build文档:
这是由npm link和npm install调用的管道命令。
通常您不会直接使用 npm build
命令,因为它是使用 node-gyp 来构建本机 C/C++ Node 插件的内部命令。
npm build
和 npm run build
不是同一个意思。个人认为,@churro的回答可能需要进行更正。如果我错了,请纠正我。https://dev59.com/E10a5IYBdhLWcg3wzbUU?noredirect=1&lq=1 - Suhas Chikkannanpm build
已经不存在了。现在必须调用npm run build
。更多信息如下。
npm install
: 安装依赖项,然后从package.json
的scripts
字段中调用install
。
npm run build
: 从package.json
的scripts
字段中运行build
字段。
https://docs.npmjs.com/misc/scripts
你可以将许多内容放入npm的package.json
脚本字段中。查看上面的文档链接以获取有关脚本生命周期的更多信息 - 大多数都有前置和后置钩子,您可以在安装、发布、卸载、测试、启动、停止、收缩包、版本之前/之后运行。
npm install
与npm run install
不同npm install
安装package.json
的依赖项,然后运行package.json
的scripts.install
npm run install
。npm run install
仅运行package.json
的scripts.install
,不会安装依赖项。npm build
曾经是一个有效的命令(与npm run build
相同),但现在已不再是;它现在是一个内部命令。如果运行它,你会得到以下提示:npm WARN build npm build called with no arguments. Did you mean to npm run-script build?
你可以在文档中阅读更多信息:https://docs.npmjs.com/cli/build 或https://docs.npmjs.com/cli/v6/commands/npm-build仍有两个顶级命令可以运行脚本,它们是:
npm start
与npm run start
相同npm test
==> npm run test
npm install
会自动运行所有依赖脚本的 npm run build
吗?这个在哪里有文档记录? - Anthony
npm install
是一个npm CLI命令,其执行预定义的任务即在package.json
中指定的依赖项(正如Churro所述)。
npm run %command-name%
或npm run-script %command-name%
也是一个CLI命令,预定义为使用指定名称的自定义脚本运行。因此,在本例中,npm run build
是一个名为“build”的自定义脚本命令,将执行其中指定的任何操作(例如下面示例的package.json
中给出的echo 'hello world'
)。
请注意以下几点:
另外,npm build
和npm run build
是两个不同的概念,npm run build
将执行写在package.json
中的自定义操作,而npm build
是一个预定义脚本(无法直接使用)。
你不能在npm run build
脚本中指定某些内容并期望npm build
执行相同操作。尝试在package.json
中验证以下内容:
{
"name": "demo",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"build": "echo 'hello build'"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {},
"dependencies": {}
}
运行npm run build
和npm build
两个命令,你会看到它们的不同之处。如需了解更多关于命令的内容,请参考npm文档。
npm run build
和npm build
之间的区别,使其更易于理解。好的,它们不同,哪些方面不同呢?那么@Churro的答案就是不正确的了吗? - Hendy Irawannpm build
将按照Churro编写的方式进行”的说法是不正确的。Churro说它将执行在“package.json”中为“build”命令指定的内容(我想是在“scripts”部分定义的)。但是这就是“npm run build”所做的,而“npm build”不会运行“package.json” “scripts”部分中指定的构建命令。除非有其他方法来定义“package.json”中“npm build”应该做什么,但这在这里没有解释,也没有被Churro(或NPM文档,我认为)所解释。 - trollkotzenpm build
提示 _npm WARN build npm build
called with no arguments. Did you mean to npm run-script build
?_。我觉得它什么也没做。在花费时间阅读所有答案并自己尝试后,我仍然无法确定 npm build
的目的 :(。 - bluenote10npm install
会安装您package.json文件中指定的依赖项。npm run build
会执行名为"build"的脚本,并创建一个运行您应用程序的脚本 - 比如说server.js。npm start
会运行名为"start"的脚本,然后是"node server.js"。很难确定问题具体是什么,但基本上如果您查看脚本配置,我猜测"build"使用某种构建工具来创建您的应用程序,而"start"则假设构建已完成,但如果文件不存在,则会失败。
您可能正在使用bower或grunt - 我记得典型的grunt应用程序将定义这些脚本以及"clean"脚本以删除最新的构建。
构建工具倾向于在bin /、dist /或build /文件夹中创建文件,然后启动脚本调用该文件 - 例如"node build/server.js"。当您的npm start
失败时,可能是因为您调用了npm clean
或类似的命令来删除最新的构建,导致应用程序文件不存在,从而导致npm start失败。
npm build
的源代码 - 触及此问题的讨论 - 可供您查看github。如果您直接运行npm build
并且已定义"build"脚本,则它将以错误退出,要求您将构建脚本命名为npm run-script build
,因此它与npm run script
不同。
我不太确定npm build
具体是做什么,但似乎与依赖项中的postinstall和打包脚本有关。我认为这可能确保下载软件包后,为特定环境构建任何CLI构建脚本或依赖项所需的本机库。这就是为什么link和install调用此脚本的原因。