2016-11-08 58 views
3

我創建與服務器節點和客戶端上角2的項目。我想在整個項目中使用Typescript。我想將ES6作爲服務器的目標,因爲節點支持ES6,而客戶端則使用ES5。目前我的目錄結構看起來像這樣。如何定位ES6進行服務器和ES5爲客戶

├── app.js 
├── something.js 
├── tsconfig.json 
├── wwwroot 
│ ├── index.html 
│ ├── main.ts 
│ ├── components 
│ │ ├── mycomponent.ts 

我想要的一切,上面wwwroot目標ES6,但一切的wwwroot內目標ES5。我試圖把第二tsconfig.jsonwwwroot文件夾內,但似乎並沒有工作。我正在使用Atom的autocompile功能,如果它有任何相關性的話。

+0

看看到https://github.com/angular/angular-cli正如我所看到的,它應該是一個很好的契合點,因爲你將能夠快速開始開發,如果需要的話可以延長。但我不知道是否有ES6選項 –

回答

3

您可以使用通天ES6的JavaScript transpile到你想要的任何ECMAScript的味道。

http://babeljs.io/

+0

你是說我應該transpile一切ES6,然後用通天transpile客戶端代碼ES5? – rgvassar

+0

基本上可以。 Typescript將編譯爲es6,然後babel將其轉換爲es5。這有點奇怪,但你有一個非常具體的場景 – BentOnCoding

+0

看起來這是在這一點上最好的方式。 – rgvassar

1

我也有類似的情況,我在做什麼是:

- project-root 
    - scripts 
    - tsconfig.json 
    - wwwroot 
    - scripts 
     - tsconfig.json 
    - html 
     - index.html 
    - styles 
     - index.css 

scripts/tsconfig.json目標es6服務器和wwwroot/scripts/tsconfig.json目標es5客戶端。

+0

當我嘗試這個時,自動編譯功能忽略了較低的'tsconfig.json'。是否有一個tsc命令可以運行以編譯兩者? – rgvassar

+0

不,你需要對它們進行不同的編譯,但是如果你的IDE支持多個'tsconfig.json'文件,那麼你應該沒有問題。在我目前的項目中,我有4個不同的項目,並且效果很好。我正在使用webstorm –

0

使用預設"babel-preset-es2015-node6",您可以使用Babel將esj傳遞給es5哪些nodejs尚未實現。

可以transpile只是你想在你的節點的package.json例如使用腳本來ES5的目錄:

"prestart": "babel server-source --out-dir dist/source" 
相關問題