[英]Issue with alias in TypeScript and Webpack 3
更新:解决了! 感谢@JulesRandolph指出循环依赖问题。
我目前正在开发的项目中出现了一个非常愚蠢的情况。 该项目是基于最新版本的TypeScript,webpack和awesome-typescript-loader构建的。
tsconfig包含以下别名:
"paths": {
"~actions" : [
"app/actions/index.ts"
],
"~components" : [
"app/components/index.ts"
],
"~helpers" : [
"app/helpers/index.ts"
],
"~middlewares" : [
"app/middlewares/index.ts"
],
"~redux" : [
"app/redux/index.ts"
],
"~styles/*" : [
"app/styles/*"
],
"~types" : [
"app/types/index.ts"
]
Webpack别名配置如下所示(请注意,我也尝试了不使用$并针对该用法(使用/ *)修改tsconfig):
{
'~actions$': '/Users/user/Workspace/prj-name/app/actions/index.ts',
'~components$': '/Users/user/Workspace/prj-name/app/components/index.ts',
'~helpers$': '/Users/user/Workspace/prj-name/app/helpers/index.ts',
'~middlewares$': '/Users/user/Workspace/prj-name/app/middlewares/index.ts',
'~redux$': '/Users/user/Workspace/prj-name/app/redux/index.ts',
'~styles': '/Users/user/Workspace/prj-name/app/styles',
'~types$': '/Users/user/Workspace/prj-name/app/types/index.ts'
}
我的问题是, 尤其是仅对于 “ app / redux / app.ts”文件,我无法使用以下语法导入:
import {
imp1,
imp2
} from '~redux';
导入内容未定义。 但是,我可以这样做:
import {
imp1
} from './[comp-name]';
在其他文件夹中,我可以使用相同的语法(和相同的文件夹名称)进行调用。 另外,我可以从其他文件夹调用〜redux的导入。
我尝试了几乎所有我知道的东西,但没有任何改变。
如果有人感兴趣,这里是(几乎)整个Webpack配置: https ://pastebin.com/gBabDjH9
导出在运行时解析为undefined
的事实很可能与您的webpack配置正交,而是由循环依赖性引起的。
要检查此问题,您可以
./index
导入时发生相同的错误。 如果是这样,则很有可能是循环依赖项错误。 madge <myTranspiledFolder> --circular
。 确保运行madge的文件已模块化(madge支持AMD,CommonJS和ES6模块)并且尚未捆绑。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.