为了避免import
中的长路径,我在我的baseUrl
tsconfig.json
选项
这是我的tsconfig.json
:
{
"compilerOptions": {
"target": "ES6",
"module": "none",
"removeComments": true,
"rootDir": "./",
"outDir": "Build",
"moduleResolution": "node",
"noImplicitAny": true,
"pretty": true,
"baseUrl": "./"
},
"exclude": [
"node_modules",
"Build"
]
}
所以不要这样做
import foo from "../../../../hello/foo"
我这样做
import foo from "hello/foo"
它在Typescript编译器中工作正常,但是当我用node.js运行我的应用程序时,我有这个错误:
module.js:474
throw err;
^
Error: Cannot find module 'hello/foo'
P.s:我不想像我在互联网上看到的那样替换require()
功能
那么如何让node.js与baseUrl一起使用或者使用typescript将"hello/foo"
之类的路径替换为"../../../../hello/foo"
?
Typescript编译器版本:
Version 2.3.0-dev.20170303
答案 0 :(得分:7)
使用node.js运行应用时传递NODE_PATH
env param
示例:
set NODE_PATH=./src
node server.js
答案 1 :(得分:0)
正如@jez所说,您需要在运行节点应用程序时设置NODEPATH。此配置可以帮助您:
tsconfig.json
"outDir": "dist",
"baseUrl": "./",
Package.json
"scripts": {
"build": "tsc",
"dev": "NODE_PATH=./ ts-node ./src/index.ts",
"start": "NODE_PATH=./dist node ./dist/index.js",
"prod": "npm run build && npm run start"
},
答案 2 :(得分:0)
只需将此行添加到tsconfig.json
文件中即可。
"baseUrl": "./src"
它应该像魅力一样工作。