webpack插件內(nèi)置模塊DefinePlugin,ProvidePlugin的應(yīng)用

DefinePlugin

通過DefinePlugin可以定義一些全局的變量,我們可以在模塊當(dāng)中直接使用這些變量,無需作任何聲明。常見的webpack配置:

const webpack = require('webpack')
const path = require('path')

module.exports = {
    entry: {
        main: './src/main.js'
    },
    output: {
        path: path.resolve(__dirname, 'dist'),
        filename: 'bundle.js'
    },
    module: {
        rules: [{
        ...
        }]
    },
    plugins: [
        new webpack.DefinePlugin({
            DESCRIPTION: JSON.stringify('This is The Test Text'),
            HAS_COMPANY: true,
            COUNT: 100,
            ARRAY: JSON.stringify([1, 2, 3]),
            OBJ: JSON.stringify({name: 'xxx'})
        })
    ]
}

DefinePlugin的應(yīng)用價值:DefinePlugin通過定義不同的變量值,使我們在開發(fā)和發(fā)布的時候執(zhí)行不同的代碼。例如一個典型的變量process.env.NODE_ENV。

ProvidePlugin

webpack配置ProvidePlugin后,在使用時將不再需要import和require進(jìn)行引入,直接使用即可。
使用方法:在webpack.dev.conf.js和webpack.prod.conf.js中添加

 plugins: [
      new webpack.ProvidePlugin({
        api: [path.join(__dirname, '../src/assets/js/utils.js'), 'default'],
      })
]

將所有接口調(diào)用方法放在 src/assets/js/api.js中,在組件中無需import即可調(diào)用。在組件中使用:

...
mounted() {
    api.getData().then(res => {
      this.items = res
    }).catch(err => {
      console.log(err)
    })
},
...
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容