【发布时间】:2019-01-24 07:48:42
【问题描述】:
我确定这是一个常见问题,但我似乎找不到明确的答案。
我有一个节点应用程序,为了构建它需要一些 devDependencies,例如babel。为了运行我的测试还需要devDependencies,例如jest。但是当 CI 在生产环境中运行时,它显然没有安装任何 devDependencies,所以我得到了找不到包的错误。
在没有 devDependencies 的情况下在 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
【问题讨论】:
-
为什么要在生产环境中运行测试?
-
因为我没有暂存分支/环境。不管测试如何,我仍然需要运行需要 babel 开发依赖项的构建,因此将测试移动到仅在另一个环境中运行并不能解决问题。
标签: node.js npm deployment continuous-integration babeljs