【发布时间】:2020-07-29 03:41:19
【问题描述】:
我正在使用 typescript 设置 Next.js 项目。我一直在关注几个指南,但我似乎遇到了导入别名的问题。
我不确定这是我的配置问题还是 Next.js 的问题。
这里有几页引用了类似的问题,但我没有成功地遵循这些问题:
- https://github.com/zeit/next-plugins/issues/535
- https://medium.com/anna-coding/how-to-use-absolute-module-import-path-in-next-js-dcbc806272e5
我尝试使用 Next.js 的 webpack 配置来解决问题(将 resolve.alias 选项直接添加到 next.config.js,但这没有帮助,而且 Next.js 现在应该支持开箱即用的 typescript (resolve.extensions 定义明确)
Next.js 版本 9.3.5
babel-plugin-module-resolver 版本 4.0.0
tsconfig.json
{
"compilerOptions": {
"target": "es5",
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"allowJs": true,
"skipLibCheck": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"noEmit": true,
"esModuleInterop": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve",
"baseUrl": ".",
"paths": {
"@components/*": ["./components/*"],
"@icons/*": ["./assets/icons/*"],
"@views/*": ["./views/*"]
}
},
"exclude": [
"node_modules"
],
"include": [
"next-env.d.ts",
"**/*.ts",
"**/*.tsx"
]
}
.babelrc
{
"presets": [ "next/babel" ],
"plugins": [
"inline-react-svg",
["module-resolver", {
"root": ["./"],
"alias": {
"@components": "./components",
"@icons": "./assets/icons",
"@views": "./views"
}
}]
]
}
【问题讨论】:
-
Dmitry Kadchenko 发布了一个 Answer 说“希望这对你有帮助 =) https://github.com/vercel/next.js/issues/7117#issuecomment-485833115”
标签: typescript import next.js babel-plugin