Webpack安装和打包

作者: 阿毛啊726 | 来源:发表于2020-05-27 11:06 被阅读0次

    1)npm init -y 创建package.json文件
    2) npm i webpack -g全局npm i webpack -save-dev局部
    安装webpack
    3)npm i webpack-cli -g 全局 npm i webpack-cli -d 局部
    安装webpack-cli
    4)webpack -v 查看webpack版本
    5)webpack .\src\main.js --output .\dist\bundle.js 用webpack打包
    es6的语法太高级的,浏览器不识别,用webpack打包,打包好的文件为dist下的bundle.js
    index.html 中引入这个文件,而不是引入 main.js

        <script src="../dist/bundle.js"></script>
    

    webpack作用
    a webpack 能够处理相互之间的依赖关系
    b webpack能够处理js 的兼容问题,浏览器不识别的高级语法转换成浏览器能识别的
    只要有一个main.js 文件 在这个文件中,导入不同的包进行编写代码,然后用webpack打包
    6)在根目录下建立webpack.config.js文件

    const path=require("path") 
    module.exports={      
        entry:'./src/main.js',      
        output:{          
              path:path.resolve(__dirname,"dist"),          
              filename: "bundle.js"      
              }  
    }  
    

    指定出入口函数 运行时只需要webpack 就可以
    7) 终端运行 webpack
    8)npm i webpack-dev-server -D
    安装webpack-dev-server
    9)package.json中添加dev

    "scripts": {    
        "test": "echo \"Error: no test specified\" && exit 1",   
        "dev": "webpack-dev-server"  
    },
    

    修改package.json dev
    "dev": "webpack-dev-server --open"
    每次启动npm run dev后会自动打开页面
    "dev": "webpack-dev-server --open --port 3000"
    修改端口号
    "dev": "webpack-dev-server --open --port 3000 --contentBase src"
    自动进入页面
    "dev": "webpack-dev-server --open --port 3000 --contentBase src --hot"
    热重载,不需要重新更新module,只更新修改的部分
    10)将html中的script引入变成/bundle

      <head>      
            <meta charset**="UTF-8"**>     
            <title>**Title**</title>     
            <script src**="/bundle.js"**></script> 
      </head>
    

    webpack-dev-server 帮我们打包生成的bundle.js文件并没有打包存放到物理磁盘上,而是直接托管到了电脑的内存中,所以在项目根目录中,根本找不到打包好的bundlejs
    可以认为 webpack-dev-server把打包好的文件, 以一种虚拟的形式,托管到了项目的根目录中和dist src node_moudle平级
    目的:方便打包构件
    11)终端运行npm run dev 只要在终端运行此句后,只要有内容修改,不需要重启和刷新页面,页面就会自动切换
    12)安装html-webpack-plugin
    npm i html-webpack-plugin -D
    让其访问内存中的页面,而不是硬盘中的html,在一定程度上提高效率
    html-webpack-plugin作用
    a自动在内存中,根据指定页面生成一个页面
    b自动把打包好的bundle.js 追加到页面中去
    13)在webpack.config.js中添加该plugin

    //只要是插件都要放到 plugins中  
    const  htmlWebpackPlugin=require("html-webpack-plugin");
    plugins:[      //配置一个在内存中生成HTML的插件      
          new htmlWebpackPlugin({          //指定模板页面          
              template: *path*.resolve(__dirname,"src/index.html"),                         
              filename: "index.html"      
           })
    

    14)对于css,less,seas等文件的引入
    在main.js文件中引入

     import "./css/index.css"
    

    但是webpack只能解析js文件,不能解析css文件并打包
    安装 style-loader css-loader
    npm i style-loader -D
    npm i css-loader -D
    15)在webpack.config.js文件中添加module,和plugins平级

    moudle:{ //这个节点用于配置所有的第三方模块加载器
        rules:[
            {test:/\.css$/,use:['style-loader',"css-loader"]}
        ]
    }
    

    当遇到.css文件时候,用style-loader和css-loader来解析
    webpack处理第三方文件类型的过程
    1)发现要处理的不是js文件,然后就去配置文件中,查找有没有对应的第三方loader规则
    2)如果能找到对应的规则,就会调用对应的loader处理这种文件类型
    3)调用loader的时候是从后往前调用的
    最后一个loader调用完毕,交给webpack打包

    相关文章

      网友评论

        本文标题:Webpack安装和打包

        本文链接:https://www.haomeiwen.com/subject/ahumahtx.html