第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

【轉(zhuǎn)】Webpack 中配置的 alias 在 Mocha 測(cè)試用例中失效的解決方案

標(biāo)簽:
JavaScript CSS3

背景

在日常开发中,有些模块层级太深,在使用的时候可能会写成

import mod from '../../../../a/deep/folder/mod'

为了解决这种问题,我们使用 webpack 的 resolve.alias 能力,对目录进行命名:

{
    resolve: {
        alias: {
             mod:  path.resolve(__dirname, 'src/a/deep/folder/mod')
        }
    }
}

在使用中,可以直接使用下面这种方式引入

import module from 'mod'

问题

蛋疼的地方来了

使用 Mocha 进行单元测试:

mocha --compilers js:babel-core/register test/specs/**/*Test.js

我们通过 Babel 进行编译后测试,遇到了问题,Mocha 并不能读取到 Webpack 内配置的 alias,所以一直提示找不到 mod 模块。

module.js:557
    throw err;
    ^

Error: Cannot find module 'mod'
    at Function.Module._resolveFilename (module.js:555:15)
    at Function.Module._load (module.js:482:25)
    at Module.require (module.js:604:17)
    at require (internal/module.js:11:18)
...

解决

搜索了各种方案,在一个不起眼的地方看到了一个方案,使用 Babel 插件:babel-plugin-webpack-aliases

.babelrc 文件

"plugins": [
    [ "babel-plugin-webpack-aliases", { "config": "./webpack.config.test.js" } ]
]

在 Mocha 测试之前会通过 Babel 进行编译,编译时会通过 babel-plugin-webpack-aliases 插件以支持 webpack 中的 alias。

其他解决方案

mocha-webpack 在 Mocha 测试之前,通过 webpack 进行预编译。

版权声明 

本博客文章均为 范明非 原创或翻译,采用知识共享 署名-非商业性使用-相同方式共享 4.0 国际 许可协议进行许可。 
原文地址: https://fanmingfei.com/posts/Webpack_Alias_Not_Work_for_Mocha.html


點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消