为什么npm install命令在节点应用程序中一次又一次地重新运行?
问题描述:
我正在经历一个奇怪的情况。我在macOS Sierra 10.12.3中获得了一个节点应用程序。我也得到了以下信息:为什么npm install命令在节点应用程序中一次又一次地重新运行?
节点-v显示V8.4.0 NPM -v显示5.3.0
该文件的package.json:
{
"name": "myapp",
"version": "1.0.1",
"description": "My Node App",
"main": "app.js",
"scripts": {
"install": "npm install",
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node app.js"
},
"engines": {
"node": ">=6"
},
"author": "blackjack",
"license": "ISC",
"dependencies": {
"angular": "^1.5.8"
}
}
当我运行 “故宫安装”为了安装依赖关系,这些依赖关系被安装,然而,“npm install”重新运行。事实上,它永远不会停止运行。
看看这个:
pathfinder:myapp blackjack$ npm install --loglevel verbose
npm info it worked if it ends with ok
npm verb cli [ '/usr/local/bin/node',
npm verb cli '/usr/local/bin/npm',
npm verb cli 'install',
npm verb cli '--loglevel',
npm verb cli 'verbose' ]
npm info using [email protected]
npm info using [email protected]
npm verb npm-session 0695436488c367c7
npm info lifecycle [email protected]~preinstall: [email protected]
npm verb correctMkdir /Users/blackjack/.npm/_locks correctMkdir not in flight; initializing
npm verb lock using /Users/blackjack/.npm/_locks/staging-e02d0e92bf103f5a.lock for /Users/blackjack/dev/web/myapp/node_modules/.staging
npm verb unlock done using /Users/blackjack/.npm/_locks/staging-e02d0e92bf103f5a.lock for /Users/blackjack/dev/web/myapp/node_modules/.staging
npm info linkStuff [email protected]
npm verb linkBins [email protected]
npm verb linkMans [email protected]
npm info lifecycle [email protected]~install: [email protected]
> [email protected] install /Users/blackjack/dev/web/myapp
> npm install
npm info it worked if it ends with ok
npm verb cli [ '/usr/local/bin/node', '/usr/local/bin/npm', 'install' ]
npm info using [email protected]
npm info using [email protected]
npm verb npm-session aeb46163714f97fa
npm info lifecycle [email protected]~preinstall: [email protected]
npm verb correctMkdir /Users/blackjack/.npm/_locks correctMkdir not in flight; initializing
npm verb lock using /Users/blackjack/.npm/_locks/staging-e02d0e92bf103f5a.lock for /Users/blackjack/dev/web/myapp/node_modules/.staging
npm verb unlock done using /Users/blackjack/.npm/_locks/staging-e02d0e92bf103f5a.lock for /Users/blackjack/dev/web/myapp/node_modules/.staging
npm info linkStuff [email protected]
npm verb linkBins [email protected]
npm verb linkMans [email protected]
npm info lifecycle [email protected]~install: [email protected]
> [email protected] install /Users/blackjack/dev/web/myapp
> npm install
^C
它永远不会打印 “OK”,告诉它的工作如预期。 应用程序在“node app.js”命令后运行正常。但是,它阻止了AWS Beanstalk中的安装。我看不到任何打印错误。
答
从package.json中删除"install": "npm install",
。
正如您在the document中看到的那样,npm在安装软件包后运行一个指定的命令。所以在这里指定npm install
将永远运行npm install
。