侧边栏壁纸
博主头像
Angel博主等级

行动起来,活在当下

  • 累计撰写 20 篇文章
  • 累计创建 8 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录
Vue

Webpack

Angel
2023-07-15 / 0 评论 / 0 点赞 / 50 阅读 / 7349 字
温馨提示:
本文最后更新于 2023-07-16,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

***下载包

npm i webpack-cil -g   安装到全局 
npm i webpack-cil -d   安装到开发依赖

*** 开发环境打包

webpack 入口打包的文件路径  -o  输出到的文件路径 --mode=development
//整体打包文件是  开发环境 

*** 生产环境打包

webpack 入口打包的文件路径 -o   输出到的文件路径 --mode=production

*** webpack配置

module.exports = {
    //webpack 配置
    //入口起点
    entry: '入口文件的路径',
    //输出
    output: {
        //输出文件名
        folename: '输出的文件名',
        // 输出路径
        path: resolve(__dirname, '文件路径')
    },
    // loader 的配置
    module: {
        rules: [
            //详细的 loader 配置
            {
              //匹配哪些文件
              test:/\.css$/,
              // 使用哪些loader进行处理
              use:[
                  //创建style标签,将js中的样式资源插入进行,添加到head中生效
                 'style-loader',
                 //将css文件变成 commonjs模块加载js中,里面内容是样式字符串  
                 'css-loader'
              ]
            }
        ]
    },
    // plugins 的配置
    plugins: [
        //详细的plugins配置
    ],
    //模式
    mode: 'development',//开发模式
    // mode:'production'

}

*** 自动打包命令

启动devServer指令为:npx webpack-dev-server

*** devServer配置

devServer: {
    // 项目构建后路径
    contentBase: resolve(__dirname, 'build'),
    // 启动gzip压缩
    compress: true,
    // 端口号
    port: 3000,
    // 自动打开浏览器
    open: true
  }

*** 开发环境配置

  • 开发环境配置
    /*
      开发环境配置:能让代码运行
        运行项目指令:
          webpack 会将打包结果输出出去
          npx webpack-dev-server 只会在内存中编译打包,没有输出
    */
    
    const { resolve } = require('path');
    const HtmlWebpackPlugin = require('html-webpack-plugin');
    
    module.exports = {
      entry: './src/js/index.js',
      output: {
        filename: 'js/built.js',
        path: resolve(__dirname, 'build')
      },
      module: {
        rules: [
          // loader的配置
          {
            // 处理less资源
            test: /\.less$/,
            use: ['style-loader', 'css-loader', 'less-loader']
          },
          {
            // 处理css资源
            test: /\.css$/,
            use: ['style-loader', 'css-loader']
          },
          {
            // 处理图片资源
            test: /\.(jpg|png|gif)$/,
            loader: 'url-loader',
            options: {
              limit: 8 * 1024,
              name: '[hash:10].[ext]',
              // 关闭es6模块化
              esModule: false,
              outputPath: 'imgs'
            }
          },
          {
            // 处理html中img资源
            test: /\.html$/,
            loader: 'html-loader'
          },
          {
            // 处理其他资源
            exclude: /\.(html|js|css|less|jpg|png|gif)/,
            loader: 'file-loader',
            options: {
              name: '[hash:10].[ext]',
              outputPath: 'media'
            }
          }
        ]
      },
      plugins: [
        // plugins的配置
        new HtmlWebpackPlugin({
          template: './src/index.html'
        })
      ],
      mode: 'development',
      devServer: {
        contentBase: resolve(__dirname, 'build'),
        compress: true,
        port: 3000,
        open: true
      }
    };
    
    
0

评论区