我有一个要为其创建别名的节点模块。
我有以下配置:
// tsconfig.json
{
"compilerOptions": {
...
"allowJs": true,
"module": "commonjs",
"target": "es6",
"jsx": "react",
"esModuleInterop": true,
"experimentalDecorators": true,
"baseUrl": "./",
"moduleResolution": "node",
"paths": {
"@my-lib/*": [
"node_modules/my-lib/src/Components/*"
]
}
},
"exclude": ["node_modules"]
}
// webpack.config.js
resolve: {
extensions: ['.js', '.jsx', '.tsx', '.ts'],
alias: {
'@my-lib': path.resolve(
'./node_modules/my-lib/src/Components'
),
}
},
// eslintrc.json
"settings": {
"import/parsers": {
"@typescript-eslint/parser": [".ts", ".tsx"]
},
"import/resolver": {
"typescript": {},
"alias": {
"map": [
[
"@my-lib",
"./node_modules/my-lib/src/Components"
]
],
"extensions": [".js", ".jsx", ".ts", ".tsx"]
}
}
但是当从 my-lib 导入模块时,vscode 自动导入会将其解析为:
my-lib/src/Components/...
我拥有的另一个配置是:(
"typescript.preferences.importModuleSpecifier": "relative",
尽管我也尝试过自动和非相对)
我几乎尝试了baseUrl
和的所有组合paths
。
感谢任何帮助!