我正在学习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"
]
}
我没有编译错误,但不理解为什么我在浏览器中收到以下错误:
Uncaught ReferenceError: exports is not defined at functional.js:2
我在Vue.js / TypeScript项目中遇到了类似的问题。 Vue.js项目使用了Webpack,我在外部模块开发期间运行了npm link
。
最后,我发现问题是由Webpack试图遵循我与npm link
命令链接的依赖关系的符号链接引起的。
解决方案是指示Webpack停止遵循符号链接。
相关的Webpack文档部分:resolve.symlinks。
相关的Vue.js故障排除部分:Vue.js and npm link。