使用 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