【发布时间】:2015-06-27 04:36:50
【问题描述】:
我用 webpack 创建了一个裸项目,只有一个加载器,ts-loader。由于以下错误,Webpack 失败:
ERROR in ./app.ts
Module build failed: TypeError: Cannot call method 'charCodeAt' of undefined
at getRootLength (/home/ravioli/IdeaProjects/dummyWebpack/node_modules/ts-loader/node_modules/typescript/bin/typescript.js:997:18)
at Object.isRootedDiskPath (/home/ravioli/IdeaProjects/dummyWebpack/node_modules/ts-loader/node_modules/typescript/bin/typescript.js:1051:16)
at rootReferencePath (/home/ravioli/IdeaProjects/dummyWebpack/node_modules/ts-loader/index.js:72:23)
at /home/ravioli/IdeaProjects/dummyWebpack/node_modules/ts-loader/index.js:87:93
at Array.map (native)
at ensureDependencies (/home/ravioli/IdeaProjects/dummyWebpack/node_modules/ts-loader/index.js:87:35)
at Object.loader (/home/ravioli/IdeaProjects/dummyWebpack/node_modules/ts-loader/index.js:103:5)
在 vanilla Javascript 文件上进行测试时,Webpack 会按预期运行。 使用 Typescript 文件和 ts-loader 时会发生错误,错误的来源是(正如您在堆栈中看到的那样)。
删除以下行后问题解决:
///<reference path="testi.d.ts" />
(文件的内容不会影响错误 - 我已经检查过了)。
这里是示例项目的链接,从 src_ts 文件夹运行 webpack:
https://github.com/ravitb/dummyWebpack
我在这里错过了什么?!
【问题讨论】:
-
可能是因为
testi.d.ts是空的?如果你在里面放一些东西只是为了测试会发生什么,比如interface test { }? -
正如 OP 所写,
d.ts文件的内容无关紧要。我们还按照您的建议测试了一个简单的界面。 -
github.com/jbrantly/ts-loader/issues/4?你用的是什么版本的 ts-loader?
-
@CodeCaster 我们使用的是 0.2.3(0.3.3 出现类似错误),但链接中的问题似乎与此问题中提出的问题无关。
d.ts文件的内容无关紧要。他们没有。它实际上是空的,你可以在 OP 的 repo 的链接中看到。
标签: typescript webpack