zoukankan      html  css  js  c++  java
  • 前端性能优化(2.2 代码分离——动态导入 dynamic import)

    使用 import() 语法实现动态导入

    project

    webpack-demo
    |- package.json
    |- webpack.common.js
    |- webpack.dev.js
    |- webpack.prod.js
    |- /dist
    |- /src
      |- index.js
    |- /node_modules

    index.js

    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)
    })

    webpack.common.js

    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()
      ]
    }

    webpack.dev.js

    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
      }
    })

    webpack.prod.js

    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')
        })
      ]
    })
  • 相关阅读:
    Include Native *.so Library in APK With Android Studio
    listview
    随笔2
    const
    关于nginx配置gzip的相关说明
    关于gzip开启后压缩对比及相关性能
    webpack 打包性能优化
    关于pc端挂载移动端页面的问题
    vue-router 中的路径异步获取时导致的to报错问题
    关于cors及文件上传和下载在非开发环境导致的异常问题
  • 原文地址:https://www.cnblogs.com/zhoulixue/p/14518647.html
Copyright © 2011-2022 走看看