问题描述
在本地,与tsc
并行运行tsc -w
或npm t -- --watch
的所有工作,但是尝试将我已有的东西复制到Github CI中一直没有工作。由于某些原因,我什至无法使用ls
打印文件夹。而且,TypeScript和Jest的安装似乎都成功了。
When it runs inside Github CI,我只是收到tsc
和Run tsc
下方Error: Process completed with exit code 1.
的所有可能命令的日志。
这是我在Github CI中的当前设置:
...
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Installing TypeScript
run: npm i -D typescript
- name: Installing Jest
run: npm i -D jest
- name: Compiling TypeScript Code
run: tsc
- name: Running Tests
run: npm t
这是我的package.json
:
{
...
"main": "dist/content.js","scripts": {
"test": "jest","testwatch": "jest --watchAll"
},"devDependencies": {
"@types/jest": "^26.0.15","jest": "^26.6.2","ts-jest": "^26.4.3","typescript": "^4.0.5"
}
}
我认为与我的tsconfig.json
相关的唯一事情是:
{
"outDir": "./dist/","rootDir": "./lib/",}
我在此设置中犯了一个错误吗?我错过了什么? Here是我的项目的完整设置。
解决方法
正如@jonrsharpe的评论中提到的那样,整个问题可以用一个错字来概括。我基本上忘记了将代码签出到CI环境中。因此,我必须将其添加到steps
的开头:
...
steps:
- name: Checking out the Project's Code
uses: actions/checkout@v2
...
Jon指出的另一个问题是缺少package-lock.json
文件,该文件的目的是使项目中安装的软件包与CI VM中安装的软件包一致—使用npm ci
而不是然后npm i
。