Github CI 使用 TypeScript 和 Jest
Github CI with TypeScript and Jest
在本地,运行 tsc
或 tsc -w
并行于 npm t -- --watch
所有工作,但试图将我所拥有的复制到 Github CI 没有工作。出于某种原因,我什至无法使用 ls
打印文件夹。不过,TypeScript 和 Jest 的安装似乎都成功了。
When it runs inside Github CI,我只是从 Run tsc
正下方的 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
然后。
在本地,运行 tsc
或 tsc -w
并行于 npm t -- --watch
所有工作,但试图将我所拥有的复制到 Github CI 没有工作。出于某种原因,我什至无法使用 ls
打印文件夹。不过,TypeScript 和 Jest 的安装似乎都成功了。
When it runs inside Github CI,我只是从 Run tsc
正下方的 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
然后。