npm 6.3.0 --only=prod install devDependencies also



将npm版本从5.6.0升级到6.3.0后,--only=prod参数不起作用,npm也安装devDependencies中列出的软件包。 但是在 5.6.0 版本中,它按预期工作。安装继续,无需在根文件夹中package-lock.json

节点版本8.11.3npm 版本6.3.0

我正在从事Angular项目。这是package.json文件:

{
"name": "frontend-skeleton",
"version": "0.0.0",
"license": "MIT",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "node build",
"test": "ng test",
"lint": "ng lint",
},
"private": true,
"dependencies": {
"@angular/animations": "^6.1.0",
"@angular/cdk": "^6.4.1",
"@angular/common": "^6.1.0",
"@angular/compiler": "^6.1.0",
"@angular/core": "^6.1.0",
"@angular/forms": "^6.1.0",
"@angular/http": "^6.1.0",
"@angular/platform-browser": "^6.1.0",
"@angular/platform-browser-dynamic": "^6.1.0",
"@angular/router": "^6.1.0",
"@types/lodash": "^4.14.115",
"bootstrap": "^3.3.7",
"core-js": "^2.5.3",
"hammerjs": "^2.0.8",
"lodash": "^4.17.10",
"rxjs": "^6.2.2",
"rxjs-compat": "^6.2.2",
"zone.js": "^0.8.20",        
"@angular-devkit/build-angular": "~0.7.0",
"@angular/compiler-cli": "^6.1.0",
"typescript": "2.9.2"
},
"devDependencies": {
"@angular-devkit/core": "^0.7.1",
"@angular/cli": "6.1.1",    
"@types/jasmine": "^2.8.4",
"@types/node": "^10.5.4",
"codelyzer": "~4.4.3",
"jasmine-core": "~3.1.0",
"jasmine-spec-reporter": "~4.2.1",
"karma": "~2.0.5",
"karma-chrome-launcher": "~2.2.0",
"karma-cli": "~1.0.1",
"karma-coverage-istanbul-reporter": "^1.3.3",
"karma-jasmine": "~1.1.2",
"karma-jasmine-html-reporter": "^0.2.2",
"protractor": "~5.2.2",
"ts-node": "~4.1.0",
"tslint": "~5.9.1"       
}
}

我遇到了同样的问题 - 运行

NODE_ENV=production npm install

为我工作。

来自 npmjs 文档:

With the --production flag (or when the NODE_ENV environment variable
is set to production),npm will not install modules listed in devDependencies.
NOTE: The --production flag has no particular meaning when adding a dependency
to a project

因此,请使用NODE_ENV env var或 --production标志。

使用

--only=production

--omit=dev

最新更新