我需要从CircleCI 1.0迁移到2.0。在将旧配置更改为新配置后,构建失败了,因为 eslint-plugin-prettier 报告了prettier空格违规。
MyProject是我的GitHub存储库,其中包含要在CI上构建的所有前端代码的client
文件夹。 在client
文件夹中有.eslintrc.json文件。
...
"extends": ["airbnb", "prettier"],
"plugins": ["prettier"],
...
.prettierrc
{
"tabWidth": 4,
"trailingComma": "all",
"singleQuote": true
}
.gitattributes(我使用Windows 10操作系统)如下所示:
*.js text eol=crlf
*.jsx text eol=crlf
当然还有 package.json
新的 CircleCI 配置:
version: 2
jobs:
build:
working_directory: ~/MyProject
docker:
- image: circleci/node:6.14.3-jessie-browsers
steps:
- checkout
- run:
name: Install Packages
command: npm install
working_directory: client
- run:
name: Test
command: npm run validate
working_directory: client
旧的 CircleCI 配置:
## Customize dependencies
machine:
node:
version: 6.1.0
# Remove cache before new build. It takes much time
# but fixing a build which is broken long time ago (and not detected because of cache)
# is even more time consuming
dependencies:
post:
- rm -r ~/.npm
## Customize test commands
test:
override:
- npm run validate
general:
build_dir: client
编译失败,原因是代码检查问题(全部是关于空格数量的):
那么,这些错误可能是什么原因呢?我已经没有任何想法了。起初,我以为是因为找不到.prettierrc文件导致的。但是当我删除它进行实验并在本地运行时,所有文件中都出现了超过1000个错误。而在CI上,有.prettierrc文件的情况下只有在少数文件中有188个错误。