尝试按照官方手册实现模块,我收到此错误消息:
未捕获的 ReferenceError:未定义导出 在 app.js:2
未捕获的 ReferenceError:未定义导出
在 app.js:2
但在我的代码中,我从来没有使用过这个名字exports。
exports
我怎样才能解决这个问题?
let a = 2; let b:number = 3; import Person = require ('./mods/module-1');
export class Person { constructor(){ console.log('Person Class'); } } export default Person;
{ "compilerOptions": { "module": "commonjs", "target": "es5", "noImplicitAny": false, "sourceMap": true, "outDir": "scripts/" }, "exclude": [ "node_modules" ] }
编辑:
如果您不再定位,此答案可能不起作用es5,我将尝试使答案更完整。
es5
原始答案
如果 CommonJS 没有安装(定义exports),你必须从你的tsconfig.json:
tsconfig.json
"module": "commonjs",
根据评论,仅此一项可能不适用于更高版本的tsc. 如果是这种情况,您可以安装一个模块加载器,如 CommonJS、SystemJS 或 RequireJS,然后指定它。
tsc
笔记:
查看您生成的main.js文件tsc。你会在最上面找到这个:
main.js
Object.defineProperty(exports, "__esModule", { value: true });
它是错误信息的根源,删除"module": "commonjs",后它会消失。