2017-05-10 93 views
2

我NPM包構建與巴貝爾運行,我在package.json配置通天預設與運行摩卡測試時使用不同的巴貝爾預設

"babel": { "presets": ["es2015"] }

我還配置了摩卡測試腳本

"test": "mocha --compilers js:babel-core/register"

但是,我想運行我的測試使用不同的巴貝爾預設比爲我的構建指定的不同。

可能嗎?我會爲你做到嗎?

回答

1

,你可以創建一個名爲babel-hook.js,並把它一個文件:

require("babel-register")({ 
    presets: [ /* whatever values you want here */ ], 
}); 

然後運行摩卡是這樣的:

mocha --require babel-hook 

這將註冊通天,你可以使用你想要的任何配置option它與package.json中的任何內容分開。

+0

太好了謝謝! – simomat

3

通天accommodates environment variables,所以你可以設置一個test環境變量,並相應地改變你的預設:

在你package.json

"babel": { 
    "env": { 
     "test": { 
     "presets": [/* your test presets */] 
     } 
    }, 
    "presets": [/* your usual presets */] 
} 

然後,像這樣運行你的摩卡命令:

"test: BABEL_ENV=test mocha --compilers js:babel-core/register" 
+0

也很棒。我認爲這是一種更富有表現力的方式。這意味着當有人查看'package.json'時,就會明白什麼_dependency-on-test-preset_用於。 – simomat

+0

剛剛意識到這可能無法在Windows上運行,因爲Windows shell不會理解環境變量聲明。 – simomat

+0

我會認爲在Windows中有一些等效的命令。也許'SET BABEL_ENV = test'或類似於[docs](https://babeljs.io/docs/usage/babelrc/#env-option)的內容? –