webpack模块化打包工具

前言 : 增加印象,留下脚印 ,忘记还可以翻一翻 奥利给。

为什么要打包?

1, 前端写代码时为了方便会将代码写在许多文件中,但是转化成HTML代码时,会使用<script>标签进行引入js代码,这样会使页面进行的http衍生请求次数的次数增多,页面加载耗能增加。
2, 使用打包过后将许多零碎的文件打包成一个整体,页面只需请求一次,js文件中使用模块化互相引用(export、import ),这样能在一定程度上提供页面渲染效率。
3 ,浏览器无法识别.less .vue .sass 等一些后缀文件,低版本浏览器无法运行es6语法,打包同时会进行编译,以兼容高版本的浏览器。

什么是模块化?(之前博客有写)
模块化详解

现在正是让我们一起学习吧
先上官方文档,中文版很详细 webpack 中文版它基于node npm 所以大家先安装一下node环境 node里面自带npm工具 大家如果用npm工具下载慢的话 可以用阿里的镜像 cnpm
终端下安装cnpm命令

npm install -g cnpm --registry=https://registry.npm.taobao.org

查看一下安装是否成功

cnpm -v

webpack官网里面安装步骤很详细 ,官方建议我们本地安装 我们就本地安装。大家安装完就可以去试一试了

目录结构
在这里插入图片描述
dist 里面是你打包好的东西
src 里面是你自己写的一些文件
我们将src里面的 css less js ipg 打包到dist吧

index.js

// commonjs模块化规范  commonjs模块需要webpack解析才能用
//导入
const {add, mul} = require('./math')

console.log(add(20, 30));
console.log(mul(20, 30));

// 2.使用ES6的模块化的规范  有没有webpack他都可以被大部分浏览器识别
//导入
import {name, age, height} from "./info";

console.log(name);
console.log(age);
console.log(height)


  require('./style.css') //css依赖
  require('./special.less')//less依赖
  document.writeln('<h2>你好</h2>')

info.js

//es6导出
export const name = 'why';
export const age = 18;
export const height = 1.88;

math.js

function add(num1, num2) {
    return num1 + num2
  }
  
  function mul(num1, num2) {
    return num1 * num2
  }
 //  commonjs导出
  module.exports = {
    add,
    mul
  }

css 和 less
简单写一写效果就好了

webpack的配置
大家先去官网上查看文档,下载相应的loader 终端npm下载 package.json 里面有版本号
之后在这里配置
webpack.config.js

const path = require('path');

module.exports = {
  entry: './src/index.js',   //入口
  output: {                 //出口
    filename: 'bundle.js',   
    path: path.resolve(__dirname, 'dist')
  },
  module: {
         rules: [
           {
             test: /\.css$/, //css - loader
             use: [
               'style-loader',
               'css-loader'
             ]
           },
           {
            test: /\.less$/,  //less - loader
            use: [{
                loader: "style-loader" // creates style nodes from JS strings
            }, {
                loader: "css-loader" // translates CSS into CommonJS
            }, {
                loader: "less-loader" // compiles Less to CSS
            }]
        },
        {
                     test: /\.(png|svg|jpg|gif)$/, //image - loader
                     use: [
                       'file-loader'
                     ]
                   }
         ]
       }
};

package.json

{
  "name": "webpack-demo",
  "version": "1.0.0",
  "description": "",
  "private": true,
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "build": "webpack"  //npm run build命令代替
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "css-loader": "^3.6.0",  下载后自动生成的版本
    "file-loader": "^6.0.0",
    "less": "^3.12.2",
    "less-loader": "^6.2.0",
    "style-loader": "^1.2.1",
    "webpack": "^4.43.0",
    "webpack-cli": "^3.3.12"
  },
  "dependencies": {
    "lodash": "^4.17.19"
  }
}

npm run build 一下 点击 index.html 就跑起来了
index.html<script src="bundle.js"></script>

本人QQ:1485731520

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值