我正在使用TypeScript,Mocha(用mocha-typescript插件)進行測試,並在我的應用程序中構建WebPack。測試:摩卡+打字稿+ webpack
最近我決定增加DefinePlugin爲的WebPack爲督促和開發環境上分開CONFIGS:
import { AppSettings as DevSettings } from './appSettings.dev'
import { AppSettings as ProdSettings } from './appSettings.prod'
declare var __ENVIRONMENT__: string;
let settings = __ENVIRONMENT__ === 'prod' ? ProdSettings : DevSettings
export let AppSettings = settings;
在片段上方有一個全局變量__ENVIRONMENT__
,這有助於選擇設置,我想用。此變量webpack.config.js定義如下:
module.exports = function(env) {
var config = {
// ...
plugins: [
new ExtendedDefinePlugin({
__ENVIRONMENT__: env === 'prod' ? 'prod' : 'dev',
})
]
// ...
}
return config;
}
所以我改變測試執行中的package.json到
"test": "webpack --env=dev && mocha --recursive"
如果我稱之爲「測試」,摩卡拋出錯誤(的WebPack建立文件正確):
ReferenceError: __ENVIRONMENT__ is not defined
測試觀察家也將無法正常工作:
"test-watch": "mocha-typescript-watch"
拋出錯誤「退出1」。
是否有可能將它們一起使用?或者我應該用另一種方式進行測試?
DefinePlugin應該在構建輸出中將'__ENVIRONMENT__'用'prod'或'dev'字面替換 - 您確定替換對瀏覽器有效嗎? – Catalyst
@Catalyst,是的。但這不是這種情況的根本原因 - 我只是不完全理解摩卡和webpack的概念。 – user1820686