我正在使用for x in listPrimes:
if((num % x) == 0):
num /= x # divide by the prime
factorials.append(x)
x = 2 # reset to the first prime in the list?
,下面是Angular 6
文件的内容
package.json
每当我使用{
"name": "my-app",
"version": "0.0.0",
"scripts": {
"ng": "ng",
"start": "node server.js",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e",
"postinstall": "ng build --prod --aot"
},
"private": true,
"dependencies": {
"@angular/animations": "^6.0.3",
"@angular/common": "^6.0.3",
"@angular/compiler": "^6.0.3",
"@angular/core": "^6.0.3",
"@angular/forms": "^6.0.3",
"@angular/http": "^6.0.3",
"@angular/platform-browser": "^6.0.3",
"@angular/platform-browser-dynamic": "^6.0.3",
"@angular/router": "^6.0.3",
"@ng-bootstrap/ng-bootstrap": "^2.2.0",
"bootstrap": "^4.1.2",
"chart.js": "^2.7.2",
"core-js": "^2.5.4",
"express": "^4.16.3",
"font-awesome": "^4.7.0",
"ng2-charts": "^1.6.0",
"ngx-toaster": "^1.0.1",
"path": "^0.12.7",
"perfect-scrollbar": "^1.4.0",
"rxjs": "^6.0.0",
"typescript": "~2.7.2",
"zone.js": "^0.8.26"
},
"devDependencies": {
"@angular-devkit/build-angular": "~0.6.8",
"@angular/cli": "~6.0.8",
"@angular/compiler-cli": "^6.0.3",
"@angular/language-service": "^6.0.3",
"@types/jasmine": "~2.8.6",
"@types/jasminewd2": "~2.0.3",
"@types/node": "~8.9.4",
"codelyzer": "~4.2.1",
"enhanced-resolve": "^4.1.0",
"jasmine-core": "~2.99.1",
"jasmine-spec-reporter": "~4.2.1",
"karma": "^2.0.4",
"karma-chrome-launcher": "~2.2.0",
"karma-coverage-istanbul-reporter": "~2.0.0",
"karma-jasmine": "~1.1.1",
"karma-jasmine-html-reporter": "^0.2.2",
"protractor": "~5.3.0",
"ts-node": "~5.0.1",
"tslint": "~5.9.1",
"typescript": "~2.7.2"
},
"engines": {
"node": "8.11.3",
"npm": "6.2.0"
}
}
安装新软件包时
npm
在安装软件包后,将执行npm install <package_name>
脚本,然后依次运行postinstall
来构建应用程序。
我之所以输入build command
,是因为该应用程序是通过 gitlab-ci 部署在 Heroku 上的。因此,每次进行推送时,它将在postinstall
脚本之后在Heroku服务器上运行npm install
。
gitlab-ci.yml
postinstall
但是,此stages:
- deploy
production:
stage: deploy
script:
- apt-get update -qy
- apt-get install -y ruby-dev
- gem install dpl
- dpl --provider=heroku --app=koober-angular --api-key=$HEROKU_PRODUCTION_API_KEY
only:
- master
即使在本地开发环境中也可以运行。
如何防止它在本地开发环境中运行postinstall
脚本?
答案 0 :(得分:0)
您应该在package.json
文件中创建特定于环境的命令安装。
package.json
"install:prod": "npm install"
"postinstall:prod": "ng build --prod --aot"
并将此命令添加到gitlab-ci.yml
文件中以仅针对产品自动部署。
OR
如果您不想更改gitlab-ci.yml
文件,则
"install:local": "npm install"
并在本地开发环境上使用此命令(npm run install:local
)