2017-08-14 82 views
0

进出口收到此错误消息(未捕获的ReferenceError:出口没有定义)时,试图导入主app.ts其他TS文件打字稿 - 未捕获的ReferenceError:出口没有定义

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文件

注意:我没有使用像角度,只是简单的打字稿框架。 注意2:CommonJS安装在项目中(Typescript ReferenceError: exports is not defined

+0

那么你可以说你正在使用的打字稿版本? 'tsc -v' – qballer

+0

typescript 2.4.2 npm 3.10.10 –

+0

似乎对我有用。你能分享更多信息吗? – qballer

回答

0

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

  1. add settings.json添加到您的.vscode文件夹。
  2. 文件内容应该是这样的,(如果你有的话,只是添加配置):

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

  3. 添加的package.json以打字稿的devDependencies

+0

我没有任何.vscode文件夹。可能吗? –

+0

创建该文件夹然后 – qballer

+0

如何添加package.json与typescript作为devDependencies? –

1

当您使用export在你的代码,而在你的tsconfig.json你有"module": "commonjs"结果代码假设commonjs月淡淡的风格。

例如:

export class Foo{} 

会的结果是:

. 
. 
. 
exports.Foo = Foo; 

所以,当您尝试运行结果js代码,如果环境不支持commonjs你会得到这个错误。

例如,浏览器不支持commonjs,但nodejs。 您可以通过使用webpack添加commonjs支持的浏览器或只加browserify

+0

用npm全局安装browserify,但我仍然得到错误! –

+0

你是什么意思“全球安装”?你还必须在你的html中包含脚本... – gilamran

+0

我的意思是,安装browserify,试图做一个bundle.js,包括它在脚本标记的HTML,但没有。 –

相关问题