zoukankan      html  css  js  c++  java
  • webpack@3.6.0(1) -- 快速开始

    本篇内容

    • 前言
    • 配置入口和输出
    • 热更新
    • loader配置
    • js代码压缩
    • html的打包与发布
    前言
    //全局安装
    npm install -g webpack(3.6.0)
    
    npm init
    
    //安装到你的项目目录
    npm install --save-dev webpack   //本地化安装是防止全局的版本冲突,团队配合时也应注意node跟webpack版本的统一性
    
    //在package.json中
    "dependencies": {
        //生产环境相关依赖    cnpm i -S/--save  xxx
    },
    "devDependencies": {
        //开发环境相关依赖      cnpm i -D/--save-dev   xxx
    }
    
    //另:
    cnpm i -g live-server
    
    
    //使用:
    live-server    //(直接到开服务器进入项目根目录)
    
    webpack.config.js配置入口和输出
    //新建工程主文件夹
    md src
    echo >> main.js
    echo >> index.html
    //根目录下配置文件
    cd ../
    echo >> webpack.config.js
    
    const path=require('path');
    module.exports={
    	entry:{
    		main:'./src/main.js',           //键名决定打包后的名字
    		main2:'./src/main2.js',     //多入口
    	},
    	output:{
    		path:path.resolve(__dirname,'dist'),
    		filename:'[name].js'          //根据入口名字生成相应的文件
    	},
    	module:{},
    	plugins:[],
    	devServer:{}
    }
    
    webpack 即可打包查看结果
    
    
    热更新(该方式页面会刷新)
    cnpm i -D webpack-dev-server(2.8.2)   
    
    //配置热更新
    devServer:{
    	contentBase:path.resolve(__dirname,'dist'),
    	host:'192.168.1.122',
    	compress:true,      //压缩
    	port:1234
    }
    
    //在package.json中
    "scripts": {
        "server": "webpack-dev-server"    //--open直接运行并打开浏览器'webpack-dev-server --open'
    },
      
    //运行
    npm run server
    

    如果热更新有问题,另加插件

    plugins: [
        //...
        new webpack.HotModuleReplacementPlugin(),  //webpack自带
    
    loader配置

    如:style-loader css-loader

    cnpm i -D style-loader css-loader
    
    // webpack.config.js
    module:{
    	rules:[
    		{
    			test:/.css$/,    //要匹配的文件后缀名
    			loaders:['style-loader','css-loader']
    			// include/exclude //(需要处理/不需要处理)
    		}
    	]
    },
    //main.js
    import css from './css/index.css';    //被打包再js文件中
    
    //运行
    npm run server
    
    
    js代码压缩
    const uglify=require('uglifyjs-webpack-plugin');
    
    plugins:[
    	new uglify()
    ],
    
    html的打包与发布(在此之前并不能直接生成html文件,在dist中,.js文件也为注入)
    cnpm i -D html-webpack-plugin
    
    const htmlPlugin=require('html-webpack-plugin');
    
    plugins:[
    	// new uglify()
    	new htmlPlugin({
    		minify:{     //压缩
    			removeAttributeQuotes:true    //去除标签属性的''
    		},
    		hash:true, 			//防止缓存的影响
    		template:'./src/index.html'
    	})
    ],
    
    //运行
    webpack
    
    

    注意:

    cnpm i live-server  //注意:与cnpm i -g live-server效果一样
    
    cnpm i --production //只安装生产环境的安装包
    

    项目地址:https://github.com/adoctors/webpack-3.6.0-demo1

  • 相关阅读:
    【2017下长沙学院软工3班_助教博客】 第一次作业成绩公示
    《构建之法》读书笔记第3章
    《构建之法》读书笔记第1、2章
    【2017下集美大学软件工程1413软工实践_助教博客】 第0次作业成绩公示
    软件工程——构建之法高分Tips
    第09组 Alpha冲刺(1/6)
    2019 SDN上机第2次作业
    第09组 团队Git现场编程实战
    2019 SDN上机第一次作业
    第09组 团队项目-需求分析报告
  • 原文地址:https://www.cnblogs.com/adoctors/p/9055483.html
Copyright © 2011-2022 走看看