zoukankan      html  css  js  c++  java
  • webpack

    一、webpack是什么? 

    1.模块化:当你整个项目完成后,将你整个项目模块化.
    2.自定义文件或npm i:可以将你自动的css文件,js文件或其他文件模块化,也可以在npm i下载安装的第三方库中文件模块化.
    3.静态文件模块化:如果你接触过node,node虽然可以模块化,但不可以将静态文件模块化,webpack可以将静态文件模块化,这时候需要借助一些插件和加载器.

    二、webpack的优势

    1.代码分离:将不同功能的代码块分开,每一个文件是一个功能.可以实现高内聚,低耦合的状态.
    2.装载器(css,sass,jsx等):比如你要讲css文件模块化,就需要借助css.loader和style.loader
    3.智能解析:require('./components/'+names+'.ejs')/也可以用es6语法引入(import)

    三、安装

    1.安装node.js 
     
    2.命令行node-v 查看版本号
    
    3.安装全局webpack
         npm install  webpack -g
     
    4.初始化,生成package.json
         npm init //这个需要手动创建package.json文件.
    
         npm init -y //可以自动创建.
     
    5.项目目录安装
    npm install --save-dev webpack
    参数–save是要保存到package.json中,dev是在开发时使用这个包,而生产环境中不使用
     
    6.查看版本号
         webpack-v

    四、简单的打包 

    1.新建一个index.html文件
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>webpack</title>
    </head>
    <body>
         <script src="bundle.js"></script>
    </body>
    </html>
    2.新建一个index.js文件
         alert('hello webpack')
    3.开始打包
         命令行输入 webpack index.js bundle.js
    4.运行index.html文件 

    五.webpack.config.js文件

    module.exports={ //入口文件的配置项
    entry:{}, //出口文件的配置项
    output:{}, //模块:例如解读CSS,图片如何转换,压缩
    module:{}, //插件,用于生产模版和各项功能
    plugins:[], //配置webpack开发服务功能
    devServer:{}
    }
     
    配置:
    // 引入path
    const path=require('path');
    module.exports={
        //入口文件的配置项
        entry:{
            entry:'./src/entry.js'
        },
        //出口文件的配置项
        output:{
            // 打包的路径文件
            path:path.resolve(__dirname,'dist'),
            // 打包的文件名称
            filename:'bundle.js'
        },
        //模块:例如解读CSS,图片如何转换,压缩
        module:{},
        //插件,用于生产模版和各项功能
        plugins:[],
        //配置webpack开发服务功能
        devServer:{}
    }
     
    path.resolve(__dirname,'dist')是获取绝对路径

    六、配置 webpack-dev-server

    1.npm install webpack-dev-server –save-dev
     
    ①、配置webpack.config.js 中的devServer
     
    devServer:{
            //设置基本目录结构
            contentBase:path.resolve(__dirname,'dist'),
            //服务器的IP地址,可以使用IP也可以使用localhost
            host:'localhost',
            //服务端压缩是否开启
            compress:true,
            //配置服务端口号
            port:3466
    }
     
    ②、package.json里配置scripts选项
     
    "scripts": {
        "server": "webpack-dev-server"
    }
     
    ③、 启动
    npm run server
     

    七、css文件打包配置

    ①、建立一个index.css
    body{
        background-color: rgb(255, 160, 131);
        color: white;
    }
     
    ②、将index.css引入entry.js中
    import css from './css/index.css';
     
    ③、安装style-loader和css-loader,用来解析CSS文件
    npm install style-loader --save-dev
     
    npm install  css-loader --save-dev
     
    ④、webpack.config.js中配置loaders
    //模块:例如解读CSS,图片如何转换,压缩
        module:{
            rules: [
                {
                    test: /.css$/,
                    use: [ 'style-loader', 'css-loader' ]
                }
            ]
        }
     

    八、js压缩

    ①、webpack.config.js中引入uglifyjs-webpack-plugin插件
    const uglify = require('uglifyjs-webpack-plugin');
     
    ②、引入后在plugins配置里new一个 uglify对象
     
    //插件,用于生产模版和各项功能
        plugins:[
            new uglify()
        ]

    九、打包HTML文件

    打包html文件
    先把dist中的html文件剪切到src目录,并去掉JS引入代码(webpack会自动为我们引入JS),这才是真实工作的目录文件结构。
     
    ①、配置webpack.config.js文件,先引入我们的html-webpack-plugin插件
     
    const htmlPlugin = require('html-webpack-plugin');
     
    ②、安装
     
    npm install html-webpack-plugin --save-dev
     
    ③、配置webpack.config.js文件里的plugins
     
    //插件,用于生产模版和各项功能
        plugins:[
            new htmlPlugin({
                // 对html文件进行压缩
                minify:{
                    // 去掉属性的双引号
                    removeAttributeQuotes:true
                },
                // 为了开发中js有缓存效果,这样可以有效避免缓存js
                hash:true,
                // 要打包的html模板路径和文件名称
                template:'./src/index.html'
            })
        ]
    

     Do not give easily-along-一个走在路上的web前端开发攻城狮~

  • 相关阅读:
    初识NuGet
    NHibernate之映射文件配置说
    NHibernate 数据查询之QueryOver<T>
    一、NHibernate配置所支持的属性
    javascript forEach无法break,使用every代替
    missing ) after argument list
    数组分组chunk的一种写法
    call和apply第一个参数为null/undefined,函数this指向全局对象
    apply的理解和数组降维
    javascript push 和 concat 的区别
  • 原文地址:https://www.cnblogs.com/alongup/p/8999583.html
Copyright © 2011-2022 走看看