2017-03-23 22 views
0

我無法使babelify在我的代碼上運行。babelify轉換不運行

我有兩個打字稿文件:

script1.ts

import Greeter from './script2'; 

const greeter = new Greeter('Hello, world!'); 

document.body.innerHTML = greeter.greet(); 

script2.ts

class Greeter { 
    greeting: string; 

    constructor(msg: string) { 
     this.greeting = msg; 
    } 

    greet() { 
     return `<h1>${this.greeting}</h1>`; 
    } 
} 

export default Greeter; 

.babelrc

{ 
    "presets": [ 
     "airbnb" 
    ] 
} 

我試圖用tsify和bab運行browserify elify:

browserify ./script1.ts -o ./app.js -p tsify -t babelify 

的文件遭到編譯和打包,但它從來沒有運行過babelify的代碼,我最終仍然有它的類和模板串輸出。

如果我單獨運行通天塔,它按預期工作:

browserify ./script1.ts -o ./app.js -p tsify 
babel ./app.js --out-file ./app-babel.js 

我錯過了哪一步嗎?

+0

http://stackoverflow.com/questions/40182786/how-to-set-up-grunt-browserify-tsify-babelify檢查答案here..maybe這是你的問題? –

+0

@suraj給了一個去,它不工作,不幸的是。 –

回答

0

問題是,默認情況下,babel將只能運行在.JS.JSX文件。不幸的是,目前沒有辦法從.babelrc配置文件(https://github.com/babel/babel/issues/3741)來配置它。

因此,這必須從命令行配置:

browserify ./script1.ts -o ./app.js -p tsify -t [ babelify --extensions ".ts",".tsx",".js",".jsx" ]

或代碼:

browserify({ entries: files }) 
    .plugin(tsify) 
    .transform(babelify, { 
    extensions: [ 
     '.ts', '.tsx', '.js', '.jsx' 
    ] 
    }); 

注意,巴貝爾依然會自動加載指定此擴展名列表時,任何.babelrc內容。