使用 import() 语法实现动态导入
webpack-demo |- package.json |- webpack.common.js |- webpack.dev.js |- webpack.prod.js |- /dist |- /src |- index.js |- /node_modules
async function getComponent () { const { default: _ } = await import(/*webpackChunkName: "lodash"*/‘lodash‘) const element = document.createElement(‘div‘) element.innerHTML = _.join([‘Hello‘, ‘webpack‘], ‘ ‘) return element } getComponent().then(component => { document.body.appendChild(component) })
const path = require(‘path‘) const HtmlWebpackPlugin = require(‘html-webpack-plugin‘) const { CleanWebpackPlugin } = require(‘clean-webpack-plugin‘) module.exports = { entry: { index: ‘./src/index.js‘, }, output: { filename: ‘[name].bundle.js‘, path: path.resolve(__dirname, ‘dist‘) }, plugins: [ new HtmlWebpackPlugin(), new CleanWebpackPlugin() ] }
const {merge} = require(‘webpack-merge‘)
const common = require(‘./webpack.common‘)
module.exports = merge(common, {
mode: ‘development‘,
devtool: ‘inline-source-map‘,
devServer: {
contentBase: ‘./dist‘,
port: 3000,
open: true
}
})
const {merge} = require(‘webpack-merge‘)
const UglifyjsWebpackPlugin = require(‘uglifyjs-webpack-plugin‘)
const common = require(‘./webpack.common‘)
const webpack = require(‘webpack‘)
module.exports = merge(common, {
mode: ‘production‘,
devtool: ‘source-map‘,
plugins: [
new UglifyjsWebpackPlugin(),
new webpack.DefinePlugin({
‘process.env.NODE_ENV‘: JSON.stringify(‘production‘)
})
]
})
前端性能优化(2.2 代码分离——动态导入 dynamic import)
原文:https://www.cnblogs.com/zhoulixue/p/14518647.html