npm install和npm run build之间有什么区别?
npm install "和 "npm run build "之间有什么区别?
我注意到在我的项目中,有时在进行 "npm install "时,npm开始失败,但在运行 "npm run build "时,它就能正常工作。
这两个目标,即 "install "和 "run build "的内部工作原理有什么不同?
68
3
npm install
将依赖项安装到node_modules/
目录中,用于你正在进行的node项目。你可以在另一个node.js项目(模块)上调用install
,将其作为你的项目的一个依赖项来安装。npm run build
是npm build
的别名,除非你在package.json文件中指定"build"做什么,否则它什么都不做。它让你在你的项目被用于其他项目之前,为你的项目执行任何必要的构建/预处理任务。根据build的文档,
build
被link
和install
命令所调用。需要注意的是:。
还有一点,"npm build "和 "npm run build "是两件不同的事情,"npm build "会做Churro写的事情,但 "npm run build "会做写在 "package.json "中的自定义工作。
npm build
和npm run build
是不一样的。我的意思是,你不能在自定义构建(npm run build
)脚本中指定一些东西,并期望npm build
做同样的事情。请尝试在你的package.json
中验证以下内容。并逐一运行
npm run build
和npm build
,你会看到区别。更多关于命令的信息,请关注npm documentation。干杯!!
npm install
在你的package.json配置中安装depedendencies。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启动 "失败时,可能是因为你调用了 "npm clean "或类似的命令来删除最新的构建,所以你的应用程序文件不存在,导致npm启动失败。
npm build'的源代码--为了触及这个问题的讨论--在github上,如果你愿意,可以看一看。如果你直接运行 "npm build",并且你定义了一个"build"脚本,它将退出,并要求你以 "npm run-script build "的方式调用你的构建脚本,所以它与 "npm run script "不一样。
我不太清楚
npm build
的作用,但它似乎与依赖关系中的后期安装和打包脚本有关。我认为这可能是为了确保任何CLI build scripts's或依赖项所需的本地库在下载软件包后为特定环境而构建。这将是链接和安装调用这个脚本的原因。