Vue:如何在 CI 平台上找出构建引擎所需的依赖项?
Posted
技术标签:
【中文标题】Vue:如何在 CI 平台上找出构建引擎所需的依赖项?【英文标题】:Vue: How to find out dependencies needed for a build engine on a CI platform? 【发布时间】:2019-11-27 23:47:19 【问题描述】:我构建了一个 Vue 应用程序,每次进行更新时,我都需要从我的机器构建资产。另一位开发人员要求我让他们知道依赖关系,以便他们在 Circle CI 上设置构建引擎。这是否意味着package.json
中列出的dependencies
和devDependencies
?其中一些我不记得手动安装了。
【问题讨论】:
【参考方案1】:如果不直接与同事交谈,很难知道他们的要求,但对于基于云的持续集成系统,您通常需要知道构建系统的先决条件。 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 版本、预构建命令列表以及我需要的一些插件。如果需要,我可以使用 OS 包管理器轻松添加内容。
基本上,我认为您的开发人员同行正在寻找足够的信息,以确保可以在其他人的机器上构建库。这几乎肯定是他们所说的“依赖项”的意思,因为您的包文件将包含足够的信息来引用 Node 可以自行处理的任何依赖项。
【讨论】:
该死的,这是一个绝妙的答案!非常感谢!!以上是关于Vue:如何在 CI 平台上找出构建引擎所需的依赖项?的主要内容,如果未能解决你的问题,请参考以下文章