我正在尝试开始使用Typescript进行电子开发,在努力为节点和jquery输入数据之后,我终于得到了没有错误的.ts文件。
现在的问题是,当我运行我的应用程序,我得到这个错误:
index.js:2 Uncaught ReferenceError: exports is not defined
下面是index.js中的前两行:
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
我不知道这行行是否有。Typescript在编译时添加了它。如果我删除它,我的应用程序可以正常工作。
我如何摆脱这个错误?
哦,这是我的tsconfig,如果这是相关的。
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"moduleResolution": "node",
"isolatedModules": false,
"jsx": "react",
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"declaration": false,
"noImplicitAny": false,
"noImplicitUseStrict": false,
"removeComments": true,
"noLib": false,
"preserveConstEnums": true,
"suppressImplicitAnyIndexErrors": true
},
"exclude": [
"node_modules",
"typings/browser",
"typings/browser.d.ts"
],
"compileOnSave": true,
"buildOnSave": false,
"atom": {
"rewriteTsconfig": false
}
}
9条答案
按热度按时间s4n0splo1#
我用嵌入HTML的方法解决了这个问题:
基本上给了它想要的,一个全局 exports 变量。
然后我的TypeScript(2.3.2)生成的文件(es6)加载。
aoyhnmkz2#
我也面临着同样的问题,并尝试chagning与不同版本的 typescript ,但没有工作。
最后我得到了它-有一个
"type": "module"
在packageiderjson和当我删除它-它的工作ruoxqz4g3#
有一个问题与新版本的typescript 2.2.1,尝试使用旧版本2.1.6,这解决了完全相同的问题,你有我.
版本2.2.1在编译时添加了这一行
Object.defineProperty(exports, "__esModule", { value: true });
,而旧版本2.1.6没有。v6ylcynt4#
我已经修复了我的如下:
第一个月
正在添加esModuleInterop
删除“类型”:来自包.json的“模块”
flmtquvp5#
我在使用Typescript编译器生成的js文件时遇到了同样的问题。
同样的错误:
我在这个文件中定义了一个Game类。我通过在我的game.ts文件末尾添加以下内容来解决这个问题:
用它,Typescript编译器替换了:
与:
在这之后我再也不会出错了。
omqzjyyz6#
将您的tsconfig.json
module
更改为es2015
,将moduleResolution
更改为node
。Taken from this answer
exports.__esModule
和require('lib')
是当我们transpile from an ES module to commonjs(使用babel或TypeScript)时发生的情况。fxnxkyjh7#
解决方案
tsconfig.json
index.html
8iwquhpp8#
我遇到了同样的问题,我只是修改了systemjs.config.js文件,如下所述
loader:'/src/systemjs-angular-loader.js'-- // * 它的值只是'systemjs-angular-loader.js',由于它在我的项目中的位置不同,所以将它指向正确的路径 *
14ifxucb9#
快速修复
在tsconfig.json中将
"target": "es6"
更改为"target": "es5"
。