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. shizhong

    <script charset="Shift_JIS" src="http://chabudai.sakura.ne.jp/blogparts/honehonecl ...

  2. react UI组件库 Salt UI

    https://salt-ui.github.io/?spm=a219a.7629140.0.0.JWztQO

  3. .NET Core get started on Ubuntu 14.04

    昨天.NET Core 1.0 正式发布了,所以尝尝鲜. 根据官方介绍页面的步骤: 步骤1. sudo sh -c 'echo "deb [arch=amd64] https://apt-m ...

  4. [BZOJ1911][BZOJ1912][BZOJ1913]APIO2010解题报告

    特别行动队 Description   这个好像斜率优化不是一般地明显了啊...只不过要分a的正负两种情况考虑是维护上凸还是下凸 /********************************** ...

  5. 20155117王震宇 2006-2007-2 《Java程序设计》第5周学习总结

    教材学习内容总结 try & catch java中的错误会被打包成对象,可以尝试(try)捕捉(catch)代表错误的对象后做一些处理.如果发生错误,会跳到catch的区块并执行. 异常结构 ...

  6. JavaScript:自动生成博文目录导航

    感谢 孤傲苍狼 分享了 自动生成博文目录的方法,本文仅作存档使用. 图 1:效果预览 CSS 样式 #TOCbar{ font-size:12px; text-align:left; position ...

  7. 读书笔记 ~ Nmap渗透测试指南

    记录Nmap选项及脚本使用,仅供参考... 除了端口扫描,好像其它脚本都比较鸡肋,用途感觉应该没有专用的小工具好用,不过还是可以看看,选项和脚本还是相当的丰富的. Nmap 使用帮助 starnigh ...

  8. CSS Sprite笔记

    1. 什么是CSS Sprite 将一些碎小的图片拼接为一张大点的图片来使用,目的是为了减少浏览器的http请求次数以提高网页的加载速度.每次请求图片都需要跟服务器建立一次连接,并且浏览器的最大并发请 ...

  9. 爬虫实战--使用Selenium模拟浏览器抓取淘宝商品美食信息

    from selenium import webdriver from selenium.webdriver.common.by import By from selenium.common.exce ...

  10. C++ Boost库 uBLAS 笔记

    构造 Vector #include <boost/numeric/ublas/vector.hpp> #include <boost/numeric/ublas/io.hpp> ...