为什么npm install命令在节点应用程序中一次又一次地重新运行?

为什么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