zoukankan      html  css  js  c++  java
  • webpack笔记1

    1.设置多个入口起点

    多用于提取公共类库

    a、利用commonChunkPlugin

    const webpack= require('webpack');
    const path = require('path');
    const HtmlWebpackPlugin= require('html-webpack-plugin');
    const CleanWebpackPlugin = require('clean-webpack-plugin');
    module.exports
    = { entry: { main: './src/main.js',
      //工具类放在一个入口
      //当内容为数组时,将创建多个主入口,生成一个chunk vendor: [
    'jquery','angular']
    }, output: { filename: '[name].[chunkhash].js', path: path.resolve(__dirname, 'dist'), publicPath: './' }, module: { rules: [ { test: /.css$/, use: ['style-loader', 'css-loader'] },{ test: /.(png|jpg|gif|svg)$/, loader: 'file-loader', options: { name: '[name].[ext]?[hash]' } },{ test: /.vue$/, loader: 'vue-loader', options: { loaders: { 'scss': 'vue-style-loader!css-loader!sass-loader', 'sass': 'vue-style-loader!css-loader!sass-loader?indentedSyntax', } // other vue-loader options go here } } ] }, plugins: [ new HtmlWebpackPlugin({ title: 'Output Management' }), new CleanWebpackPlugin(['dist']), new webpack.optimize.CommonsChunkPlugin({
          name: 'vendor'
    ,
          filename:
    'librarys.js' }) ], devtool: 'source' };

    这样就能生成librarys.js,包含jquery与angular,但值得注意的是会连同公共类库一起打包

    b.利用external提取公共类库(推荐方法)

    const path = require('path');
    const HtmlWebpackPlugin= require('html-webpack-plugin');
    const CleanWebpackPlugin = require('clean-webpack-plugin')
    var ManifestPlugin = require('webpack-manifest-plugin');
    const webpack= require('webpack');
    
    module.exports = {
      entry: {
        main: './src/main.js'
      },
      output: {
          //非覆盖更新
        filename: '[name].[chunkhash].js',
        path: path.resolve(__dirname, 'dist'),
        publicPath: './'
      },
      externals: {
          jquery: 'jquery'
        },
      module: {
          rules: [
          {
              test: /.css$/,
              use: ['style-loader', 'css-loader']
          },{
            test: /.(png|jpg|gif|svg)$/,
            loader: 'file-loader',
            options: {
                  name: '[name].[ext]?[hash]'
            }
        },{
            test: /.vue$/,
            loader: 'vue-loader',
            options: {
                  loaders: {
                'scss': 'vue-style-loader!css-loader!sass-loader',
                'sass': 'vue-style-loader!css-loader!sass-loader?indentedSyntax',
                  }
            }
          }
          ]
      },
      plugins: [
          new HtmlWebpackPlugin({
           title: 'Output Management'
        }),
        new CleanWebpackPlugin(['dist'])
      ],
      devtool: 'source'
    };

    注意这里使用的是使用全局变量的方式,所以得手动在index.html中引入jquery

    2.commonChunkPlugin

     将公共依赖放入模块提取到已有的入口chunk中,或者提取到新生成的chunk(常见)

    4.动态载入

    chunkFilename 非入口chunk名称

    return import(/*webpackChunkName: "ladash"*/'lodash').then() 懒加载

  • 相关阅读:
    please get a license from www.texturepacker.com
    2014阿里巴巴WEB前端实习生在线笔试题
    javascript实现日期时间动态显示
    NHibernate之旅(8):巧用组件之依赖对象
    软工视频再识
    Android ListView 的优化
    hdu 5001 概率DP 图上的DP
    Android 代码设置Activity 背景透明
    内存数据网格IMDG简单介绍
    JavaFX2
  • 原文地址:https://www.cnblogs.com/yanze/p/7999956.html
Copyright © 2011-2022 走看看