首页 文章

打字稿 - 未捕获的ReferenceError:未定义导出

提问于
浏览
1

我在尝试导入主app.ts中的其他ts文件时收到此错误消息(Uncaught ReferenceError:exports未定义)

app.ts

import { LanguagesConfigs } from './LanguagesConfigs';
let languagesConfigs = new LanguagesConfigs();

LanguagesConfigs.ts

export class LanguagesConfigs {
 code
}

tsconfig.json

{
    "compilerOptions": {
        "target": "es5",
        "module": "commonjs",
        "sourceMap": true
    }
}

我在visual studio代码中编译它 . 它生成.js和.js.map文件

注意:我没有使用像angular这样的帧,只是普通的打字稿 . 注2:CommonJS安装在项目中(Typescript ReferenceError: exports is not defined

2 回答

  • 4

    当您在 tsconfig.json 中的代码中使用 export 时, "module": "commonjs" 结果代码假定为 commonjs 模块样式 .

    例如:

    export class Foo{}
    

    结果是:

    .
    .
    .
    exports.Foo = Foo;
    

    因此,当您尝试运行结果 js 代码时,如果环境不支持 commonjs ,您将收到此错误 .

    例如,浏览器不支持 commonjsnodejs 支持 . 您可以使用webpack向浏览器添加 commonjs 支持,或者只需添加browserify

  • 0

    您的示例repo似乎编译,所以我猜这是vscode的配置问题 . 我建议如下:

    • 将settings.json添加到.vscode文件夹 .

    • 文件内容应为此,(如果你有,只需添加该配置):

    {“typescript.tsdk”:“ . / node_modules /typescript / lib”}

    • 使用typescript作为devDependencies添加package.json

相关问题