我构建了一个Vue应用程序,每次更新时都需要从我的机器上构建资产。另一位开发人员要求我让他们知道依赖关系,以便他们在Circle CI上设置一个构建引擎。这是否意味着package.json中列出的dependencies和devDependencies?其中一些我不记得手动安装了。
发布于 2019-07-19 11:40:22
如果不直接与您的同事交谈,很难知道他们要求什么,但是对于基于云的持续集成系统,您通常需要知道构建系统的先决条件是什么。只要您的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,也可能是用于某些用例的数据库客户端。我还需要知道运行构建需要运行哪些命令(travis做了一个合理的假设,一旦您告诉它语言是node_js;我希望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版本,一个预编译命令列表,以及一些我需要的插件。如果我需要的话,我可以用OS包管理器轻松地添加一些东西。
基本上,我假设你的开发人员正在寻找足够的信息,以确保可以在其他人的机器上构建这个库。这几乎就是他们所说的“依赖关系”的意思,因为您的包文件将包含足够的信息来引用Node本身可以处理的任何依赖关系。
https://stackoverflow.com/questions/57104712
复制相似问题