我构建了一个 Vue 应用程序,每次更新时都需要我从我的机器构建资产。另一位开发人员让我让他们知道依赖关系,以便他们在 Circle CI 上设置构建引擎。这是否意味着dependencies
和 中devDependencies
列出的package.json
?其中一些我不记得手动安装。
如果不直接与同事交谈,很难知道他们的要求,但是对于基于云的持续集成系统,您通常需要知道系统先决条件是什么才能构建。package.json 中的内容很简单,只要您在 package.json 的“脚本”部分中有一个“构建”命令。
例如,我有一个 package.json 大致如下所示:
"build": "yarn build:umd & yarn build:es & yarn build:unpkg",
"build:umd": "rollup --config build/rollup.config.js --format umd --file dist/honeybadger-vue.umd.js",
"build:es": "rollup --config build/rollup.config.js --format es --file dist/honeybadger-vue.esm.js",
"build:unpkg": "rollup --config build/rollup.config.js --format iife --file dist/honeybadger-vue.js",
"build:unpkg-minify": "rollup MINIFY=true --config build/rollup.config.js --format iife --file dist/honeybadger-vue.min.js",
但是,对于持续集成设置,我需要告诉 CI 系统我需要什么才能运行这些命令。这些可能是您的同事正在询问的依赖项。
例如,我使用 Travis 而不是 Circle CI,但我需要指定我需要在哪些 Node 版本上运行测试,我可能需要哪些外部依赖项来构建库和运行测试。这可能是 ImageMagick 之类的库、无头 Chrome,也可能是某些用例的数据库客户端。我还需要知道需要运行哪些命令来运行构建(一旦你告诉它语言是 node_js,travis 会做出一个合理的假设;我希望 Circle CI 是类似的)。
在我的特定 Travis 设置中,我在名为 .travis.yml 的项目中有一个配置文件,它告诉 Travis 它需要知道的一切,如下所示:
dist: trusty
language: node_js
node_js:
- 8
- 10
- 11
sudo: false
addons:
chrome: stable
before_script:
- "export DISPLAY=:99.0"
- "sh -e /etc/init.d/xvfb start"
- sleep 3 # give xvfb some time to start
before_install:
- google-chrome-stable --headless --disable-gpu --remote-debugging-port=9222 http://localhost &
这列出了我想要测试的 Node 版本、预构建命令列表以及我需要的一些插件。如果需要,我可以很容易地使用操作系统包管理器添加内容。
基本上,我认为您的开发人员正在寻找足够的信息以确保可以在其他人的机器上构建库。这几乎可以肯定是他们所说的“依赖项”,因为您的包文件将包含足够的信息来引用 Node 可以自行处理的任何依赖项。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句