Travis CI 在 tsc 上失败

Pay*_*erl 5 javascript github travis-ci typescript tsc

所以我在github上托管了一个打字稿项目。

我正在尝试为测试设置 Travis CI,但是当我进入将代码编译为 javascript(tsc 命令)的步骤时,它失败了。

错误如下所示:

> node node_modules/typescript/bin/tsc
src/DbHandler.ts:2:32 - error TS2307: Cannot find module './models/User'.
2 import { User, UserInit } from './models/User';
                                 ~~~~~~~~~~~~~~~
src/User.ts:2:22 - error TS2307: Cannot find module './models/User'.
2 import { User } from "./models/User";
                       ~~~~~~~~~~~~~~~
Found 2 errors.

npm ERR! code ELIFECYCLE
Run Code Online (Sandbox Code Playgroud)

文件的路径是正确的,它在本地编译得很好..

在项目中,我有这个 package.json(cleaned):

{
  "name": "project",
  "version": "0.0.1",
  "description": "",
  "main": "dist/server.js",
  "scripts": {
    "build": "node node_modules/typescript/bin/tsc",
    "prod": "node dist/server.js",
    "dev": "ts-node src/server.ts",
    "dev:watch": "nodemon",
    "test:watch": "ts-node node_modules/jasmine/bin/jasmine",
    "test": "node node_modules/jasmine/bin/jasmine.js --config=jasmine.json"
  },
  "author": "myname",
  "license": "MIT",
  "devDependencies": {
    "@types/express": "~4.17.1",
    "@types/jasmine": "~3.4.4",
    "jasmine": "~3.5.0",
    "nodemon": "~1.19.4",
    "ts-node": "~8.4.1",
    "tslint": "~5.20.0",
    "typescript": "~3.6.4"
  },
  "dependencies": {
    "express": "~4.17.1"
  }
}
Run Code Online (Sandbox Code Playgroud)

我的.travis.yml样子:

language: node_js
cache: npm
node_js:
  - "stable"

install:
  - npm ci
  - npm run build

script:
  - npm run test
Run Code Online (Sandbox Code Playgroud)

我的文件结构是这样的:

package.json
.travis.yml
src/
    models/
        User.ts
    DbHandler.ts
    User.ts
    server.ts
test/
    files_for_tests_with_ts_extension
Run Code Online (Sandbox Code Playgroud)