zoukankan      html  css  js  c++  java
  • webpack4 打包

    1. 基本安装及命令

    npm config set registry https://registry.npm.taobao.org     //  淘宝镜像
    npm install webpack-cli -g   //  安装之后才能  webpack  -v

    webpack index.js -o out.js     // 打包指定文件  指定输出路径及名称
    webpack --mode development index.js -o out.js   //  指定打包方式为开发模式(默认为产品模式:去除console命令及其他未引用代码)

    ( src - dist  4.0版本默认不需配置《代码资源放置在src,生成的代码资源放置在dist 》,但也可以增加配置文件 webpack.config.js )

    常用的 webpack.config.js

    var path = require('path');
    
    module.exports = {
      entry: './src/index.js',
      output: {
        filename: 'bundle.js', 
        path: path.resolve(__dirname, 'out')
      }
    };
    View Code

    webpack --mode development  // 只用 webpack,则默认为 production 模式,去除多余部分及调试提示

    2. 合并打包

    var path = require('path');
    
    module.exports = {
      entry: ['./src/a.js','./src/b.js','./src/c.js'],
      output: {
        filename: 'bundle.js', 
        path: path.resolve(__dirname, 'out')
      }
    };
    View Code

    3. 分块打包

    var path = require('path');
    
    module.exports = {
      entry: {
          a:'./src/a.js',
          b:'./src/b.js',
          c:'./src/c.js'
      },
      output: {
        filename: '[name].build.js', 
        path: path.resolve(__dirname, 'out')
      }
    };
    View Code

    4. 配置属性为开发模式  mode: development

    5.url-loader 处理小图片

    npm init

    npm install url-loader --save

    npm install file-loader --save  // 图片尺寸超过限制时使用

    var path = require('path');
    
    module.exports = {
      entry: './src/index.js',
      output: {
        filename: 'bundle.js', 
        publicPath: './out/', // 最后的 / 不可少,两个 out 对应,确保 生成的大文件图片路径正确
        path: path.resolve(__dirname, 'out')
      },
      mode:'production',
      module: {
        rules: [
          {
            test: /.(png|jpg|gif)$/,
            use: [
              {
                loader: 'url-loader',
                options: {
                  limit: 8192
                }
              }
            ]
          }
        ]
      }
    };
    View Code

    6. 引入 jquery     expose-loader 

    npm install expose-loader --save-dev

    npm install jquery --save 

    var path = require('path');
    
    module.exports = {
      entry: './src/index.js',
      output: {
        filename: 'bundle.js', 
        publicPath: './out/', // 最后的 / 不可少,两个 out 对应,确保 生成的大文件图片路径正确
        path: path.resolve(__dirname, 'out')
      },
      mode:'production',
      module: {
        rules: [
          {
            test: /.(png|jpg|gif)$/,
            use: [
              {
                loader: 'url-loader',
                options: {
                  limit: 8192
                }
              }
            ]
          },
          {
            test: require.resolve('jquery'),
            loader: 'expose-loader?jQuery!expose-loader?$!expose-loader?scrollable'
          }
        ]
      }
    };
    View Code

    使用  import $ from 'expose-loader?$!jquery';

    相关链接:

    loaders

    webpack 踩坑

    webpack:使用expose-loader 解决第三方库的插件依赖问题

    webpack4导入jQuery的新方案

  • 相关阅读:
    百度贴吧的数据抓取和分析(二):基础数据分析
    百度贴吧的数据抓取和分析(一):指定条目帖子信息抓取
    二十三种设计模式及其python实现
    经典排序算法及python实现
    从开发到部署,使用django创建一个简单可用的个人博客
    使用uWSGI+nginx部署Django项目
    ubuntu中彻底删除nginx
    阿里的秒杀系统是怎么设计的?
    多图详解!10大高性能开发核心技术
    关于Redis的几件小事 | 高并发和高可用
  • 原文地址:https://www.cnblogs.com/justSmile2/p/11261201.html
Copyright © 2011-2022 走看看