2017-08-14 101 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,但沒有。 –

相關問題