如何 运行 预先提交单独的文件夹?
How to run pre-commit on separate folders?
我使用 pre-commit,我有一个包含两个文件夹的存储库:
.
├── backend
│ └── (backend files)
├── frontend
│ └── (frontend files)
└── .pre-commit-config.yaml
每个文件夹都有一个 Docker 文件并且相互独立。
这是我的 .pre-commit-config.yaml
:
repos:
- repo: local
hooks:
- id: go-docker
name: go
language: docker_image
entry: backend:latest go fmt
files: backend/
- id: prettier-docker
name: prettier
language: docker_image
entry: frontend:latest npm run format
files: frontend/
我想 运行 使用 Docker 预先提交两个文件夹,但我得到:
npm ERR! code ENOENT
npm ERR! syscall open
npm ERR! path /src/package.json
npm ERR! errno -2
npm ERR! enoent ENOENT: no such file or directory, open '/src/package.json'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent
根据预提交文档:pre-commit will automatically mount the repository source as a volume using -v $PWD:/src:rw,Z and set the working directory using --workdir /src.
所以问题似乎是 frontend
文件夹位于 src/frontend
但预提交使用的路径只是 src
.
我在 Docker 命令之前尝试了 cd frontend
,但没有成功。有什么想法吗?
提前致谢!
你是对的,你需要 cd
,但你需要在 docker
内完成
例如:
- id: prettier-docker
name: prettier
language: docker_image
entry: frontend:latest bash -c 'cd frontend && npm run format'
files: frontend/
如果我没记错的话你也会想要 pass_filenames: false
我使用 pre-commit,我有一个包含两个文件夹的存储库:
.
├── backend
│ └── (backend files)
├── frontend
│ └── (frontend files)
└── .pre-commit-config.yaml
每个文件夹都有一个 Docker 文件并且相互独立。
这是我的 .pre-commit-config.yaml
:
repos:
- repo: local
hooks:
- id: go-docker
name: go
language: docker_image
entry: backend:latest go fmt
files: backend/
- id: prettier-docker
name: prettier
language: docker_image
entry: frontend:latest npm run format
files: frontend/
我想 运行 使用 Docker 预先提交两个文件夹,但我得到:
npm ERR! code ENOENT
npm ERR! syscall open
npm ERR! path /src/package.json
npm ERR! errno -2
npm ERR! enoent ENOENT: no such file or directory, open '/src/package.json'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent
根据预提交文档:pre-commit will automatically mount the repository source as a volume using -v $PWD:/src:rw,Z and set the working directory using --workdir /src.
所以问题似乎是 frontend
文件夹位于 src/frontend
但预提交使用的路径只是 src
.
我在 Docker 命令之前尝试了 cd frontend
,但没有成功。有什么想法吗?
提前致谢!
你是对的,你需要 cd
,但你需要在 docker
例如:
- id: prettier-docker
name: prettier
language: docker_image
entry: frontend:latest bash -c 'cd frontend && npm run format'
files: frontend/
如果我没记错的话你也会想要 pass_filenames: false