Bla*_*ode 20 javascript typescript
我正在尝试使用Typescript进行电子开发.在为节点和jquery打字之后,我终于得到了我的.ts文件错误.
问题是,当我运行我的应用程序时,我收到此错误:
index.js:2 Uncaught ReferenceError: exports is not defined
Run Code Online (Sandbox Code Playgroud)
这些是index.js中的前两行:
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
Run Code Online (Sandbox Code Playgroud)
我不知道那条线.打字稿在编译时添加了它.如果删除它,我的应用程序工作正常.
我该如何摆脱这个错误?
哦,这是我的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
}
}
Run Code Online (Sandbox Code Playgroud)
小智 73
我在嵌入HTML中解决了这个问题:
<script> var exports = {}; </script>
<script src="index.js"></script>
Run Code Online (Sandbox Code Playgroud)
基本上给它想要的东西,一个全球出口变量.
使用我的TypeScript(2.3.2)生成的文件(es6)加载.
Vik*_*han 19
我也面临同样的问题,并尝试使用不同版本的打字稿,但没有奏效。
终于我明白了 - 有一个"type": "module",当我删除它时 - 它起作用了
新版本的typescript 2.2.1存在问题,请尝试使用旧版本2.1.6,它解决了您对我的完全相同的问题.
编译时的2.2.1版添加了这一行,Object.defineProperty(exports, "__esModule", { value: true });而旧的2.1.6没有.
我已经用以下方法修复了我的:
tsconfig.json
{
"compilerOptions": {
"target": "ESNext",
"module": "CommonJS",
"lib": [
"DOM",
"ES5"
],
"esModuleInterop": true
}
}
Run Code Online (Sandbox Code Playgroud)
添加 esModuleInterop
从 package.json 中删除 "type": "module"
小智 5
我对 Typescript 编译器生成的 js 文件有同样的问题。同一行:
Object.defineProperty(exports, "__esModule", { value: true });
Run Code Online (Sandbox Code Playgroud)
同样的错误:
game.js:2 Uncaught ReferenceError: exports is not defined
Run Code Online (Sandbox Code Playgroud)
我在这个文件中定义了一个游戏类。我通过在我的 game.ts 文件末尾添加这个来解决这个问题:
export = Game;
Run Code Online (Sandbox Code Playgroud)
有了这个,Typescript 编译器替换了:
Object.defineProperty(exports, "__esModule", { value: true });
Run Code Online (Sandbox Code Playgroud)
和:
module.exports = Game;
Run Code Online (Sandbox Code Playgroud)
在这之后,我再也没有错误了。