Str*_*ch0 4 deployment continuous-integration node.js npm babeljs
我确信这是一个常见问题,但我似乎找不到明确的答案。
我有一个节点应用程序,为了构建它需要一些 devDependency,例如babel. 为了运行我的测试还需要 devDependency,例如jest. 但是当 CI 在生产环境中运行时,它显然没有安装任何 devDependency,因此我会收到找不到包的错误。
在没有 devDependency 的情况下在 prod 中运行构建和测试的最佳实践是什么?
如果有帮助,我正在 GitLab Pipelines 中运行我的构建:
image: node:8.11.2
stages:
- prepare
- test
- deploy
install_and_build:
stage: prepare
script:
- npm install yarn
- yarn
- yarn build
only:
- master
test:
stage: test
script:
- yarn test
only:
- master
deploy_production:
type: deploy
stage: deploy
image: ruby:latest
script:
- apt-get update -qy
- apt-get install -y ruby-dev
- gem install dpl
- dpl --provider=heroku --app=app-name --api-key=$HEROKU_API_KEY
only:
- master
Run Code Online (Sandbox Code Playgroud)
从这个答案来看,
首先,您需要“安装所有依赖项”。
Run Code Online (Sandbox Code Playgroud)npm install然后进行测试。
Run Code Online (Sandbox Code Playgroud)npm test然后“修剪”您的开发依赖项,如下所示,如文档中详细 说明的那样,“将删除您的 devDependency 中指定的包”。
Run Code Online (Sandbox Code Playgroud)npm prune --production
| 归档时间: |
|
| 查看次数: |
1171 次 |
| 最近记录: |