.travis.yml
文件是:
language: node_js
node_js:
- node
env:
global:
- secure: "[redacted]"
before_install:
- node ./bin/version_check.js
install:
- npm i
- npm i -g codecov
- npm i -g @octokit/rest
script:
- npm run lint
- npm run build
- npm run ci
deploy:
- skip_cleanup: true
provider: npm
email: obfishstudio@gmail.com
api_key:
secure: "[redacted]"
on:
repo: jjyyxx/JSONSchemaSimulator
branch: master
- skip_cleanup: true
provider: script
script: node ./bin/auto_release.js
on:
repo: jjyyxx/JSONSchemaSimulator
branch: master
在安装阶段,已安装@octokit/rest
软件包。但是在第二个部署任务中,当我在./bin/auto_release.js
的第一行中需要它时:
const Octokit = require('@octokit/rest')
Travis CI显示Error: Cannot find module '@octokit/rest'
。
该项目位于https://github.com/jjyyxx/JSONSchemaSimulator。
ci报告位于https://travis-ci.org/jjyyxx/JSONSchemaSimulator/builds/408414549。
答案 0 :(得分:2)
所以我以前从未使用过Travis CI,但是我使用的是GitLab CI,实际上情况也是如此。
问题在于,全局软件包将不会合并到作业的缓存中,因此将在install
完成后被删除。
对于这种设置,我强烈建议在本地而非全局安装软件包。
这样做的原因之一是执行程序可能用于不同的构建作业,如果全局安装了不同的软件包版本并且相互干扰,这将是非常不幸的。