我正在使用nodejs应用程序,我想在tsconfig.json中配置路径,但是路径配置存在问题,我一直收到错误Error: Cannot find module '@environment'
。可能是什么问题?
tsconfig
{
"compilerOptions": {
"resolveJsonModule" : true,
"target": "es6",
"module": "commonjs" ,
"lib": [
"dom",
"es6"
],
"outDir": "build",
"rootDir": "src",
"removeComments": true ,
"strict": true,
"noImplicitAny": true,
"baseUrl": "./",
"paths": {
"@lime/*": ["src/*"],
"@environment": ["src/config/environment.ts"],
},
"esModuleInterop": true
}
}
项目树:
src - config - environment.ts
...
- index.js
package.json
tsconfig.json
...
environment.ts
import * as dotenv from 'dotenv';
dotenv.config();
interface Environment {
port: number | string,
baseUrl: string,
databaseUri: string,
}
export const environment: Environment = {
port: process.env.PORT!,
baseUrl: process.env.BASE_URL!,
databaseUri: process.env.DATABASE_URI!
}
在index.ts
中我将environment.ts导入为import { environment } from '@environment';
,请问可能是错的吗?
如果尝试使用node
或ts-node
直接执行此操作,则应注意,默认情况下节点未解析tsconfig
路径。如果您正在使用tsc
进行构建(而不是使用webpack或类似工具来生成捆绑包),则可以像这样添加到您的依赖项tsconfig-paths
中:
tsconfig-paths
然后执行以下代码:
npm install --save tsconfig-paths
如果直接将TS代码与node -r tsconfig-paths/register dist/index.js
一起使用,则可以使用:
ts-node
例如,建议在生产中将源与webpack捆绑在一起,并在捆绑时使用ts-node -r tsconfig-paths/register src/index.ts
之类的插件来解析路径。