NodeJS无法自动解析index.ts文件

时间:2019-05-02 08:10:47

标签: node.js typescript

当我在NodeJS + Typescript应用程序中使用require时,必须将index.ts文件添加到url中,否则会出现错误Cannot find module './api',例如

const api = require('./api/index.ts')-有效

const api = require('./api')-不起作用

我的package.json

  "dependencies": {
    "@types/express": "^4.16.1",
    "cors": "^2.8.5",
    "express": "^4.16.4",
    "mongoose": "^5.5.5",
    "morgan": "^1.9.1",
    "ts-node": "^8.1.0",
    "ts-node-dev": "^1.0.0-pre.32",
    "tslint": "^5.16.0",
    "typescript": "^3.4.5"
  }

4 个答案:

答案 0 :(得分:1)

TypeScript源文件必须先编译为JavaScript文件,然后才能由Node.js执行。

例如:npx tsc

答案 1 :(得分:1)

require不是使用typescript时的默认导入格式,因此有时可能无法解决,请尝试使用import * as api from './api'

答案 2 :(得分:0)

这可能是一些事情的结果。您的package.json与TypeScript如何解决相对的导入/需求无关。

检查target文件中的modulemoduleResolutiontsconfig.json编译器选项。更具体地说,module应该设置为"commonjs"(对于Node.js应用程序),moduleResolution应该设置为"node"

详细了解 here

答案 3 :(得分:0)

实际上有两个问题:

  • 使用ES5语法
  • 不编译TS文件

因此,我没有使用require,而是将所有内容更改为import,还需要向脚本中添加ts-node,例如:nodemon --watch '*.ts' --exec 'ts-node' server.ts