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. 011. C++ friend使用

    1.friend 友元 将一个函数定义为friend,可以读取private数据: 显然,friend提供便利的同时,会破坏C++的封装性,因此,建议谨慎使用,朋友多了也许是个困扰. class co ...

  2. win32/linux 线程 log

    原文 #include <stdio.h> #include <stdlib.h> #include <string.h> #ifdef WIN32 #includ ...

  3. 调整的R方_如何选择回归模型

    sklearn实战-乳腺癌细胞数据挖掘(博客主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId=1005269003&a ...

  4. windows中apache+tomcat整合,使php和java项目能够独立运行

    一.下载和安装 1.安装php  网上有安装教程,不再赘述 2.安装apache 比如安装目录为e:\apache;  项目根目录为e:\www;   网上有安装教程,不再赘述 3.安装jdk  不再 ...

  5. NOIP模拟3

    期望得分:30+90+100=220 实际得分:30+0+10=40 T1智障错误:n*m是n行m列,硬是做成了m行n列 T2智障错误:读入三个数写了两个%d T3智障错误:数值相同不代表是同一个数 ...

  6. hdu 3118 Arbiter

    http://acm.hdu.edu.cn/showproblem.php?pid=3118   题意:删除最少的边使图没有奇环   二分图的定义:如果顶点能分为两个互不相交的子集,则图为二分图 二分 ...

  7. winform MDI子窗口闪动问题(本人测试100%有效解决闪屏问题)

    将下面的代码随便放到主窗体的任何一个地方 protected override CreateParams CreateParams //解决MDI闪屏 { get { CreateParams cp ...

  8. 【leetcode 简单】第六题 有效的括号

    给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合. 左括号必须以正确的顺序闭合. 注意空字符串可被认 ...

  9. 33、求按从小到大的顺序的第N个丑数

    一.题目 把只包含因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含因子7. 习惯上我们把1当做是第一个丑数.求按从小到大的顺序的第N个丑数. 二.解法 ...

  10. 2017 CERC

    2017 CERC Problem A:Assignment Algorithm 题目描述:按照规则安排在飞机上的座位. solution 模拟. 时间复杂度:\(O(nm)\) Problem B: ...