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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么我的 Mutex 類沒有被 Webpack 轉(zhuǎn)譯?

為什么我的 Mutex 類沒有被 Webpack 轉(zhuǎn)譯?

白衣非少年 2023-12-14 16:57:25
我在從 Webpack 4 升級到 Webpack 5 時遇到問題,其中 Babel 似乎不再從我的依賴項之一(async-mutex)轉(zhuǎn)譯代碼。我設(shè)法將其精簡為演示問題的最小設(shè)置:包.json{    "scripts": {        "build": "webpack --mode=production"    },    "devDependencies": {        "@babel/core": "~7.12.0",        "@babel/preset-env": "~7.12.0",        "async-mutex": "~0.2.0",        "babel-loader": "~8.2.0",        "webpack": "~5.10.0",        "webpack-cli": "~4.2.0"    },    "babel": {        "presets": [            "@babel/preset-env"        ]    },    "browserslist": [        "Explorer >= 11"    ]}webpack.config.jsmodule.exports = {    entry:  {        bundle: './index.js',    },    module: {        rules: [            {                test: /\.m?js$/,                use:  'babel-loader',            },        ],    },};索引.jsimport {Mutex} from 'async-mutex';console.log(Mutex);class MyClass {}console.log(MyClass);根據(jù)我的 browserslist,我需要支持 IE 11。構(gòu)建并檢查結(jié)果后,dist/bundle.js我可以看到該類MyClass已轉(zhuǎn)換為函數(shù),但該類Mutex未轉(zhuǎn)換,這顯然會導(dǎo)致 IE 11 因語法錯誤而失敗。就好像 Babel 使用不同的設(shè)置來處理async-mutex包而不是處理我的index.js.我發(fā)現(xiàn)另一個問題的答案建議添加target: ['web', 'es5'],但這沒有幫助,而且似乎也沒有必要,因為 Webpack 應(yīng)該尊重 browserslist。使用 Webpack 4 我沒有遇到這個問題,但我不確定問題是否出在我的設(shè)置、Webpack、Babel 甚至 async-mutex 上。注意:我知道這個最小的設(shè)置缺少 Promise polyfill,但我在這里省略它,因為它似乎與問題無關(guān)。
查看完整描述

2 回答

?
萬千封印

TA貢獻1891條經(jīng)驗 獲得超3個贊

Babel 配置package.json僅適用于您的特定包,而不適用于node_modules,因此即使 Babel 設(shè)置為處理包中的所有文件,它也僅配置為對您自己的包的文件執(zhí)行轉(zhuǎn)換。

您需要創(chuàng)建一個babel.config.json,或者您需要將配置直接放入 Webpack 配置中,所以要么

babel.config.json:

{

? ? "presets": [

? ? ? ? "@babel/preset-env"

? ? ]

}

或者 webpack.config.js:


module.exports = {

? ? entry:? {

? ? ? ? bundle: './index.js',

? ? },

? ? module: {

? ? ? ? rules: [

? ? ? ? ? ? {

? ? ? ? ? ? ? ? test: /\.m?js$/,

? ? ? ? ? ? ? ? use:? 'babel-loader',

? ? ? ? ? ? ? ? options: {

? ? ? ? ? ? ? ? ? ? "presets": [

? ? ? ? ? ? ? ? ? ? ? ? "@babel/preset-env"

? ? ? ? ? ? ? ? ? ? ]

? ? ? ? ? ? ? ? }

? ? ? ? ? ? },

? ? ? ? ],

? ? },

};


查看完整回答
反對 回復(fù) 2023-12-14
?
神不在的星期二

TA貢獻1963條經(jīng)驗 獲得超6個贊

您需要將 babel 的規(guī)則包含async-mutex在您的webpack.config.js模塊中。有時您會遇到一個未轉(zhuǎn)換其 ES6 的軟件包。有趣的是,將其包含在轉(zhuǎn)譯中的最佳方法是使用exclude,如下所示:



module.exports = {

    entry:  {

        bundle: './index.js',

    },

    module: {

        rules: [

            {

                test: /\.m?js$/,

                exclude: /node_modules\/(?!(async-mutex)\/).*/,

                use:  'babel-loader',

            },

        ],

    },

};

此排除規(guī)則表示“排除除”node_modules之外的所有內(nèi)容async-mutex。


查看完整回答
反對 回復(fù) 2023-12-14
  • 2 回答
  • 0 關(guān)注
  • 248 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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