仅在Angular中的git上运行postInstall脚本

时间:2018-07-20 14:54:46

标签: angular

我正在使用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脚本?

1 个答案:

答案 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