Typescript找不到路径中定义的模块
我有一个typescript应用程序,它具有用于绝对导入的Typescript找不到路径中定义的模块,typescript,Typescript,我有一个typescript应用程序,它具有用于绝对导入的路径。我的tsconfig如下所示: { "compilerOptions": { "baseUrl": ".", "paths": { "utils*": ["src/utils*"], "operations*": ["src/operations*"], "actions*": ["src/actions*"], "components*
路径。我的tsconfig如下所示:
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"utils*": ["src/utils*"],
"operations*": ["src/operations*"],
"actions*": ["src/actions*"],
"components*": ["src/components*"],
"constants*": ["src/constants*"],
},
"outDir": "dist",
"module": "esnext",
"target": "esnext",
"moduleResolution": "node",
"noEmit": true,
"lib": ["es2017", "dom"],
"noUnusedLocals": true,
"sourceMap": true,
"skipLibCheck": true,
"allowJs": true,
"jsx": "preserve",
"noUnusedParameters": true,
"preserveConstEnums": true,
"strict": true,
"allowSyntheticDefaultImports": true,
"noImplicitAny": true,
},
"exclude": [
"node_modules",
"dist",
],
"include": [
"./src/**/*"
],
"files": [
"./typings/index.d.ts"
]
}
我试着使用这样的导入:
import { AppStateType } from 'actions/app';
但是,我找不到模块“操作/应用程序”
我听了答案,但似乎不起作用
我做错了什么?路径的模式有点挑剔 试试这个:
"paths": {
"utils/*": ["src/utils/*"],
"operations/*": ["src/operations/*"],
"actions/*": ["src/actions/*"],
"components/*": ["src/components/*"],
"constants/*": ["src/constants/*"],
},
请注意添加了斜杠
由于您设置了baseUrl
,我认为应该可以,但如果没有,下一步可能是指定完整的相对路径(相对于tsconfig
文件):
这将满足TypeScript编译器的要求,但如果您使用的是Webpack或Parcel,您可能会收到投诉,说他们无法找到文件,即使TypeScript编译得很好。在这种情况下,您需要为绑定器设置别名。它看起来有点像这样:
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"utils*": ["src/utils*"],
"operations*": ["src/operations*"],
"actions*": ["src/actions*"],
"components*": ["src/components*"],
"constants*": ["src/constants*"],
},
"outDir": "dist",
"module": "esnext",
"target": "esnext",
"moduleResolution": "node",
"noEmit": true,
"lib": ["es2017", "dom"],
"noUnusedLocals": true,
"sourceMap": true,
"skipLibCheck": true,
"allowJs": true,
"jsx": "preserve",
"noUnusedParameters": true,
"preserveConstEnums": true,
"strict": true,
"allowSyntheticDefaultImports": true,
"noImplicitAny": true,
},
"exclude": [
"node_modules",
"dist",
],
"include": [
"./src/**/*"
],
"files": [
"./typings/index.d.ts"
]
}
// webpack.config.js or similar
// ...
resolve: {
extensions: [".js", ".jsx"], // import without .js, .jsx, .json extensions
alias: {
"utils": path.resolve(__dirname, "src/utils/*"),
"operations": path.resolve(__dirname, "src/operations/*"),
"actions": path.resolve(__dirname, "src/actions/*"),
"components": path.resolve(__dirname, "src/components/*"),
"constants": path.resolve(__dirname, "src/constants/*")
}
},
// package.json
// ...
"alias": {
"utils": "./src/utils/*",
"operations": "./src/operations/*",
"actions": "./src/actions/*",
"components": "./src/components/*",
"constants": "./src/constants/*"
}