ul>li{
color:blue;
font-size:20px
}
.items>ul>li>ul>li{
color:crimson
}
-->

webpack直接打包

  • 1.装生产环境
  • 2.打包 webpack 入口文件路径 出口文件路径

webpack.config.js配置

  • 1.出入口配置

    • 1-1.直接控制台输入webpack就可以打包了
    • 1-2.多入口文件配置
    • 1-3.热更新安装
    • 1-4.css-loader style-loader配置 三种写法
    • 1-5.代码压缩插件 uglifyjs-webpack-plugin 次插件webpack内部集成 不需要安装 注意:此处不可以用dev启动,原始webpack压缩就可以了
    • 1-6.此刻以生产环境启动服务器 分离的文件路径就ok了 对于website路径前缀可以更改
    • const path=require('path');
      module.exports={
      entry:'./src/index.js', //入口配置
      output:{
      path:path.resolve(__dirname,'dist'),//出口路径
      filename:'index.js'//出口文件名
      },//出口配置
      // module:{},//图片字体视频等配置
      // plugins:{},//插件
      // devServer:{}//服务
      }
      const path=require('path');
      module.exports={
      entry:{
      entry1:'./src/index1.js',
      entry2:'./src/index2.js'
      }, //多入口配置
      output:{
      path:path.resolve(__dirname,'dist'),//出口路径
      filename:'[name].js'//多出口 name表示和对应的入口文件入口属性名一样
      }
      }

html文件放入src的骚操作,html打包

  • 1.安装并引入html-webpack-plugin
  • 2.直接在终端运行webpack,html文件被打包到dist文件夹中

css引入图片打包 直接打包成js一部分

  • 1.安装file-loader url-loader
  • 2.配置

css分离

  • 1.将打包好到js文件的css分离
  • 2.下载包并引入 extract-text-webpack-plugin
  • 3.修改css配置 但是这样分离的css路径是有问题的
  • 4.设置出口文件的公共路径 http://localhost:8080
  • 5.如果本地引用 设置公共路径为 path.resolve('dist')

img引入的图片打包

  • 1.安装html-withimg-loader
  • 2.配置

对于动画样式如何自动添加内核前缀

  • 1.安装postcss-loader 和autoprefixer
  • 2.新建文件postcss.config.js
  • 3.配置

去除多余的css样式

  • 1.安装purifycss-webpack purify-css
  • 2.全局引入
  • 3.配置plgins

es5转换为6的最新包

  • 1.下载安装babel-preset-env
  • 2.添加.babelrc配置

目录结构

webpack.config.js配置

const path=require('path');
const uglify=require('uglifyjs-webpack-plugin');
const htmlPlugin=require('html-webpack-plugin');
const extractTextPlugin = require("extract-text-webpack-plugin");
const glob = require('glob');//同步检查html
const PurifyCSSPlugin = require("purifycss-webpack");//去除多余的css样式的插件
var website ={
publicPath:path.resolve('dist')
}
module.exports={
entry:{
entry1:'./src/index1.js',
entry2:'./src/index2.js'
}, //多入口配置
output:{
path:path.resolve(__dirname,'dist'),//出口路径
filename:'[name].js',//多出口 name表示和对应的入口文件入口属性名一样
publicPath:website.publicPath//公共路径
},
devServer:{
//设置基本目录结构
contentBase:path.resolve(__dirname,'dist'),
//服务器的IP地址,可以使用IP也可以使用localhost
host:'localhost',
//服务端压缩是否开启
compress:true,
//配置服务端口号
port:8080
},
module:{
rules:[
{
test:/\.css$/,
//用于匹配处理文件的扩展名的表达式,这个选项是必须进行配置的;
use: extractTextPlugin.extract({
fallback: "style-loader",
use:[ { loader: 'css-loader', options: { importLoaders: 1 } },
'postcss-loader']
})//分离css文件配置
// use:['style-loader','css-loader','postcss-loader'],
//loader名称,就是你要使用模块的名称,这个选项也必须进行配置,否则报错;
//include/exclude:''手动添加必须处理的文件(文件夹)或屏蔽不需要处理的文件(文件夹)(可选);
//query:'' 为loaders提供额外的设置选项(可选)。
}
/**
* rules:[{
* test:/\.css$/,
* loader:['style-loader','css-loader']
* 或者 use[{loader:"style-loader"},{loader:'css-loader'}]
* }]
*
*
*/,
{
test: /\.js$/,//js5转6
use: [{
loader: 'babel-loader',
options: {
presets: ['es2015']
}
}],
exclude: /node_modules/
},{
test:/\.(png|jpe?g|gif|svg)(\?.*)?$/,
use:[{
loader:'url-loader',//小于500000b的url-loader转换,大于的交给file-loader
options:{//url内置了file 只需要引url-loader 大于的会自动交给file处理
limit:500000, //将小于500000b的文件打成base64的格式写入js
}
}]
},
{
test: /\.(htm|html)$/i,//img图片正确路径配置
use:[ 'html-withimg-loader']
} ]
},
plugins:[
new uglify(),
new extractTextPlugin("/css/index.css"),//css样式分离后的路径
new htmlPlugin({
minify:{
removeAttributeQuotes:true//是对html文件进行压缩,removeAttrubuteQuotes是却掉属性的双引号。
},
hash:true,//为了开发中js有缓存效果,所以加入hash,这样可以有效避免缓存JS。
template:'./src/index.html'//是要打包的html模版路径和文件名称。 }),
new PurifyCSSPlugin({
// Give paths to parse for rules. These should be absolute!
paths: glob.sync(path.join(__dirname, 'src/*.html')),
})//用于删减多余的css样式
]
}

常用的包

{
"name": "es6",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"build": "webpack",
"dev": "webpack-dev-server"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"babel-cli": "^6.26.0"
},
"devDependencies": {
"autoprefixer": "^7.1.6",//css添加内核前缀
"babel-core": "^6.26.0",//es5转换es6 方法1
"babel-loader": "^7.1.2",//es5转es6 方法1
"babel-preset-es2015": "^6.24.1",//es5转es6 方法1
"css-loader": "^0.28.7",//css样式解析
"extract-text-webpack-plugin": "^3.0.2",//css文件分离
"file-loader": "^1.1.5",//图片等文件解析
"html-webpack-plugin": "^2.30.1",//html自动被加载js 也就是html打包
"html-withimg-loader": "^0.1.16",//img图片路径打包
"postcss-loader": "^2.0.9",//为css添加内核前缀
"style-loader": "^0.19.0",//css样式解析
"url-loader": "^0.6.2",//图片等文件解析
"webpack": "^3.8.1",
"webpack-dev-server": "^2.9.5"//热更新模块
}
}

postcss.config.js

module.exports = {
plugins: [
require('autoprefixer')
]
}

 .babelrc.js

{
"presets": ["es2015"]
}
// {
// "presets":["react","env"]
// }//通过转换为env将es5转换为es6

webpack3.0+总结的更多相关文章

  1. webpack-dev-server配置指南(使用webpack3.0)

    最近正在研究webpack,听说webpack可以自己搭建一个小型的服务器(使用过vue-cli的朋友应该都见识到过),所以迫不及待的想要尝试一下.不过,在实际操作中发现,用webpack搭建服务器仍 ...

  2. Webpack3.0入门指南

    前言 本文是基于我厂基友的Webpack学习系列(一)初学者使用教程 这篇文章做构建.可能基友的文章是基于Mac环境,我是windows环境,在学习时遇到了很多坑,询问基友,他让我搞个基于window ...

  3. webpack3.0之loader配置及编写(一)

    loader 用于对模块的源代码进行转换.loader 可以使你在 import 或"加载"模块时预处理文件.loader 可以将文件从不同的语言(如 TypeScript)转换为 ...

  4. webpack-dev-server配置指南webpack3.0

    最近正在研究webpack,听说webpack可以自己搭建一个小型的服务器(使用过vue-cli的朋友应该都见识到过),所以迫不及待的想要尝试一下.不过,在实际操作中发现,用webpack搭建服务器仍 ...

  5. [转] webpack3.0踩坑:postcss-loader的使用

    解决方案: 只是换了一种引入方式,解决了 1,创建postcss.config.js文件,添加如下代码:(引入autoprefixer插件)   1 2 3 4 module.exports = {  ...

  6. vue-cli项目打包优化(webpack3.0)

    1.修改source-map配置:此配置能大大减少打包后文件体积. a.首先修改 /config/index.js 文件: // /config/index.js dev环境:devtool: 'ev ...

  7. webpack3.0 环境搭建

    额.备份一下总是好的 #为了避免某些国外镜像源安装失败,先设置淘宝镜像代理 yarn config set registry https://registry.npm.taobao.org # 初始化 ...

  8. webpack3.0版本的一些改动

    npm install --save / npm install -S 项目发布上线之后还会依赖用到的插件,没有这些插件,项目不能运行 npm install --save-dev / npm ins ...

  9. 简单vue项目脚手架(vue+webpack2.0+vuex+vue-router)

    github地址 使用技术栈 webpack(^2.6.1) webpack-dev-server(^2.4.5) vue(^2.3.3) vuex(^2.3.1) vue-router(^2.5.3 ...

随机推荐

  1. windows多线程接口介绍和使用

    一windows多线程接口: 1 创建线程 CreateThread 与 _beginthreadex都可以实现创建线程,两个函数的参数 相同, HANDLEWINAPICreateThread( L ...

  2. libevent学习文档(三)working with event

    Events have similar lifecycles. Once you call a Libevent function to set up an event and associate i ...

  3. 配置pdo 的用户和密码,

    注意:要进入mysql命令行来操作~~~~ grant all on *.* to pdo_root@'%' identified by 'pdo_pwd'; flush privileges

  4. 子序列 sub sequence问题,例:最长公共子序列,[LeetCode] Distinct Subsequences(求子序列个数)

    引言 子序列和子字符串或者连续子集的不同之处在于,子序列不需要是原序列上连续的值. 对于子序列的题目,大多数需要用到DP的思想,因此,状态转移是关键. 这里摘录两个常见子序列问题及其解法. 例题1, ...

  5. ios 字符串截取

    NSString *str = @"my name is jiemu"; 1.从第三个字符开始,截取长度为4的字符串 NSString *str2 = [str substring ...

  6. codevs 1491 取物品

    1491 取物品 http://codevs.cn/problem/1491/  时间限制: 1 s  空间限制: 128000 KB     题目描述 Description 现在有n个物品(有可能 ...

  7. (function($){})(jQuery)---Javascript的神级特性:闭包

    function($){}实际上是匿名函数 这就定义了一个匿名函数,参数为arg function(arg){ //code } 而调用函数 时,是在函数后面写上括号和实参的,由于操作符的优先级,函数 ...

  8. 脱离MVC使用Razor模板引擎

    关于Razor模板引擎 1.简介 模板引擎:Razor.Nveocity.Vtemplate.Razor有VS自动提示.使用起来会方便一点. 但是Razor大多是在MVC下使用的. 那么如何在非MVC ...

  9. 天梯赛 L2-012 关于堆的判断 (二叉树)

    将一系列给定数字顺序插入一个初始为空的小顶堆H[].随后判断一系列相关命题是否为真.命题分下列几种: "x is the root":x是根结点: "x and y ar ...

  10. CMDB概述(一)

    浅谈ITIL TIL即IT基础架构库(Information Technology Infrastructure Library, ITIL,信息技术基础架构库)由英国政府部门CCTA(Central ...