【问题标题】:TypeError: Cannot call method 'charCodeAt' of undefinedTypeError:无法调用未定义的方法“charCodeAt”
【发布时间】: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 文件夹运行 webpackhttps://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


【解决方案1】:

这是一个问题,其中 ts-loader 引入了 TypeScript 1.5,它发生了重大变化,而不是坚持使用 TypeScript 1.4。我已经推出了一个新版本(0.3.4)来解决这个问题。很抱歉这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-14
    • 2015-12-23
    相关资源
    最近更新 更多