鍍金池/ 問答/Linux  HTML/ webpack中使用babel的轉(zhuǎn)換失敗

webpack中使用babel的轉(zhuǎn)換失敗

問題:在項(xiàng)目中使用webpack打包的時(shí)候發(fā)現(xiàn),業(yè)務(wù)由于引用了node_modules中的代碼是es6的。此時(shí)無論如何配置webpack配置,都無法使引用的代碼降級(jí)。

備注:業(yè)務(wù)其他代碼已經(jīng)降級(jí)成功,唯獨(dú)引用node moudules的代碼無法降級(jí)。

回答
編輯回答
款爺

在rules寫上 exclude: /node_modules/
{

    test: /\.js$/,
    exclude: /node_modules/
  }
2017年4月9日 23:47
編輯回答
有點(diǎn)壞

在你的 webpack 配置中,babel-loader 的選項(xiàng)里將需要編譯的包包含進(jìn)來:

{
  test: /\.js$/,
  exclude: /node_modules\/(?!(ONE-MODULE|ANOTHER-ONE)\/).*/,
}
2017年2月23日 08:20
編輯回答
玩控

感謝大家關(guān)注

在搜索了一下GitHub后發(fā)現(xiàn),babel默認(rèn)不轉(zhuǎn)換node_moduel中的內(nèi)容,要去掉這個(gè)配置,需要在babelrc中配置 ignore配置項(xiàng)

{
    "plugins": [
        "transform-runtime"
    ],
    "presets": ["es2015"],
    "ignore" : false
}

即可轉(zhuǎn)換nodemodules中的內(nèi)容。

題外話:babel官方不建議這種用法,因?yàn)閚ode modules中暴露出來的代碼,應(yīng)該是立即可用的,不需要經(jīng)過轉(zhuǎn)換的,大家加入這條語句時(shí)可能需要小心點(diǎn)。

采納的方案是較優(yōu)方案,可以參考我采納的那個(gè)方案

2018年8月28日 23:04