未捕获的ReferenceError:导入函数时未定义导出-TypeScript

时间:2018-07-26 13:12:37

标签: javascript typescript

我正在学习TypeScript。我从output导入了console.ts函数:

export function output(value: any): void {
  console.log(value);
}

哪个编译为console.js

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var console_1 = require("./console");
console_1.output('Hello');
//# sourceMappingURL=functional.js.map

目标文件中的导入和使用:

import {output} from "./console";
output('Hello');

tsconfig.json:

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "noImplicitAny": true,
    "removeComments": true,
    "preserveConstEnums": true,
    "sourceMap": true
  },
  "exclude": [
    "node_modules"
  ]
}

我没有编译错误,但不理解为什么在浏览器中出现以下错误:

enter image description here

Uncaught ReferenceError: exports is not defined at functional.js:2

2 个答案:

答案 0 :(得分:2)

我遇到了完全相同的问题。告诉webpack停止遵循符号链接,这是vue.config.js

中的代码段
chainWebpack: config => {
  config.resolve.symlinks(false);
},

答案 1 :(得分:0)

我在Vue.js / TypeScript项目中遇到了类似的问题。 Vue.js项目在后台使用了Webpack,我在外部模块开发过程中运行过npm link

最终,我发现此问题是由Webpack试图遵循符号链接到我用npm link命令链接的依赖项引起的。

解决方案是指示Webpack停止跟踪符号链接。

有关Webpack文档的部分:resolve.symlinks

有关Vue.js的故障排除部分:Vue.js and npm link