我正在开发一个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';,请问会出什么问题?
发布于 2020-04-26 18:59:20
如果您尝试使用node或ts-node直接执行此操作,则应注意tsconfig路径在默认情况下不会按节点进行解析。如果您使用tsc进行构建(而不是使用webpack或类似的工具来生成包),则可以像这样向依赖项tsconfig-paths添加内容:
npm install --save tsconfig-paths然后使用以下命令执行代码:
node -r tsconfig-paths/register dist/index.js如果您将TS代码直接与ts-node一起使用,则可以使用:
ts-node -r tsconfig-paths/register src/index.ts在生产中,建议将源代码与webpack捆绑在一起,并使用tsconfig-paths-webpack-plugin)等插件在捆绑时解析路径。
发布于 2020-04-26 19:13:35
我可能不确定,我查看了文档。似乎路径应该是dir。请试试这个组合。
{
"baseUrl": "./",
"paths": {
"@lime/*": ["src/*"],
"@environment": ["src/config/"],
},
"esModuleInterop": true
}
}并且像这样导入:
import { environment } from '@environment/environment'
https://stackoverflow.com/questions/61419271
复制相似问题