webpack --help 查看webpack命令
启动服务 npm run dev (先配置好服务)
进入对应文件夹并初始化npm
cd demo
npm init
安装webpack
npm install webpack --save-dev
默认package.json中scripts修改
"webpack": "webpack --config webpack.config.js --display-modules --progress --colors --display-reasons"
安装css loader 以便于支持loader
npm install css-loader style-loader --save-dev
引用文件中需要引入样式loader
require("style-loader!css-loader!./style.css");(style-loader必须放在css-loader前,否则要报错)
简单点通过命令行绑定loader
webpack hello.js hello.bundle.js --module-bind “css=style-loader!css-loader” 这里要用双引号
这句话每次打包都要绑定这个
--watch 自动打包 更改代码之后自动打包
--progress 看打包过程 --progress --display-modules 看打包模块
--progress --display-modules --display-reasons 看打包原因信息

入口实际用对象的形式 不同页面分别打包,chunkname和hashname是上线版本所需要的
webpack插件控制html页面引入的src 和打包后的js相同
npm install html-webpack-plugin --save-dev

title接收设定的参数写法
<title><%= htmlWebpackPlugin.options.title %></title>

var htmlWebpackPlugin=require("html-webpack-plugin");
module.exports={
entry:{
main:__dirname+"/src/script/main.js",
a:__dirname+"/src/script/a.js",
b:__dirname+"/src/script/b.js",
c:__dirname+"/src/script/c.js"
},
output:{
path:__dirname+"/dist",//html在dist目录下
filename:"js/[name].bundle.js", //js放在js目录下 用相对路径
//这里的name是entry中前边那个 main a
publicPath:'http://cdn.com',//线上地址

},
plugins:[
new htmlWebpackPlugin({
filename:'a.html',
template:'index.html',
//这里index 是根目录下的index.html
inject:false, //script标签嵌入位置
title:"this is A", // 传参
//chunks:["main","a"], //引入单独的chunks
excludeChunks:["b","c"] //排除的chunks
}),
new htmlWebpackPlugin({
filename:'b.html',
template:'index.html',
//这里index 是根目录下的index.html
inject:false, //script标签嵌入位置
title:"this is B", // 传参
//chunks:["b"],//引入单独的chunks
excludeChunks:["a","c"] //排除的chunks
}),
new htmlWebpackPlugin({
filename:'c.html',
template:'index.html',
//这里index 是根目录下的index.html
inject:false, //script标签嵌入位置
title:"this is C", // 传参
//chunks:["c"] , //引入单独的chunks
excludeChunks:["b","a"] //排除的chunks
}),
]
}

去掉公共路径 只要后边的路径
<%= compilation.assets[htmlWebpackPlugin.files.chunks.main.entry.substr(htmlWebpackPlugin.files.publicPath.length)].source() %>
单独引用某个js
<script src="<%= htmlWebpackPlugin.files.chunks.jq.entry %>"></script>
如果不包含main 则引入,这里是body标签有选择的引入。
<% for(var k in htmlWebpackPlugin.files.chunks) { %>
<% if(k !='main'){ %>
<script src="<%= htmlWebpackPlugin.files.chunks[k].entry %>"></script>
<% }%>
<% } %>
ERROR in Entry module not found: Error: Can't resolve 'babel-loader' in.........”
npm install babel-loader --save
Cannot find module 'babel-core'
npm link babel-core
babel 安装命令行代码
npm install babel-preset-env --save-dev
config.json文件中
module: {
loaders: [
{
test: /\.js$/,
loader: "babel-loader", //这里是babel-loader
"query": {
"presets": [ "env" ]
},
}
]
},
引入jq,
main.js中(或其他js)
import $ from './jquery-1.11.3';
window.$ = $;
window.jQuery = $;
export default $;
引入jq的文件
import $ from './main.js'

babel转化打包比较慢,速度优化
exclude include 相对路径和 绝对路径
exclude:__dirname+"/node_modules",//排除的范围(相对路径)
include:path.resolve(__dirname+"src"),//包含的范围
npm i style-loader css-loader --save-dev ======= npm install style-loader css-loader --save-dev

postcss-loader 增加厂商前缀
npm install postcss-import --save-dev
npm install autoprefixer --save-dev 安装postcss的一个插件
loaders:["style-loader","css-loader?importLoaders=1","postcss-loader"]
这里?importLoaders=1 是 在css文件中@import 其他css文件处理厂商前缀

安装less
npm i less-loader --save-dev
ERROR in Cannot find module 'less'
npm install --save-dev less
npm install --save-dev file-loader

打包顺序按js顺序输出
chunks:["main","jq","headerFun","rem"], //引入单独的chunks
//excludeChunks:[""] //排除的chunks
chunksSortMode: function (chunk1, chunk2) {
var chunks = ['main', 'jq', 'headerFun',"rem"];
var order1 = chunks.indexOf(chunk1.names[0]);
var order2 = chunks.indexOf(chunk2.names[0]);
return order1 - order2;
}
最顶部引入const autoprefixer = require('autoprefixer');
//postcss是js对css进行处理
new webpack.LoaderOptionsPlugin({
options: {
context: __dirname,
postcss: [
autoprefixer
]
}
})
处理html中的img标签的图片,安装npm i html-withimg-loader --save
npm install img-loader --save-dev

在 webpack 中引入图片需要依赖 url-loader 这个加载器。 npm install url-loader --save-dev
安装完file-loader就可以用一下代码处理css中的图片background:url()这种
{
test: /\.(jpe?g|png|gif|svg)$/,
loader: 'file-loader',
}
在顶部引入 var html = require('html-withimg-loader');
在htmlWebpackPlugin中加入这2行,

template: 'html-withimg-loader!' + path.resolve(__dirname, "live.html"),
filename: "live.html",

scss文件处理
//在项目下,运行下列命令行
npm install --save-dev sass-loader
//因为sass-loader依赖于node-sass,所以还要安装node-sass
npm install --save-dev node-sass

test:/\.scss$/,
loader:'style-loader!css-loader!sass-loader'

webpack打包处理html、css、js、img、scss文件的更多相关文章

  1. vue2.0 在main.js引入scss文件报错

    在vue2.0的main.js中引入scss文件报错 原因是在 在build文件夹下的webpack.base.conf.js的rules里面添加配置 { test: /\.scss$/, loade ...

  2. vue项目 安装和配置sass & main.js引入scss文件报错

    通过npm 安装 cnpm install --save-dev sass-loader cnpm install --save-dev node-sass 在build文件夹下的webpack.ba ...

  3. webpack打包vue项目之后生成的dist文件该怎么启动运行

    亲测,webpack打包vue项目之后生成的dist文件可以部署到 express 服务器上运行. 我的vue项目结构如下: 1. 进入该vue项目目录,打开git bash,执行:npm run b ...

  4. vue-cli || webpack 打包的时候css里面写的背景图片的路径出错问题

    .bg width 100% position fixed left 0 top 0 height 100vh z-index -1 background url('~@/assets/imgs/bg ...

  5. 踩坑,vue项目中,main.js引入scss文件时报错

    当我们在src目录下创建.scss文件,并在main.js中引用,运行时会报: ERROR Failed to compile with 1 errors 5:25:07 PMThis relativ ...

  6. webpack打包之有依赖js模块

    一.入口文件main.js var isd = require('./depend.js'); if(isd.isDepend){ console.log('有依赖模块'); } else { con ...

  7. nginx 无法加载css/js图片等文件 404 not fund

    刚配置Nginx反向代理,Nginx可能会出现无法加载css.js或者图片等文件,这里需要在配置文件*.conf里面加上如下配置项. location ~ .*\.(js|css|png|jpg)$ ...

  8. Nuget包含css\js等资源文件

    <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>netst ...

  9. Spring Boot thymeleaf模版支持,css,js等静态文件添加

    Thymeleaf引入 Thymeleaf是一个Java模板引擎开发库,可以处理和生成HTML.XML.JavaScript.CSS和文本,在Web和非Web环境下都可以正常工作. 1.添加依赖包 & ...

  10. webpack快速入门——CSS进阶:SASS文件的打包和分离

    1.安裝:因为sass-loader依赖于node-sass,所以需要先安装node-sass cnpm install node-sass --save-dev cnpm install sass- ...

随机推荐

  1. PHP中通过sqlsrv调用存储过程——成绩排名去除重复字段的数据行

    培训考试项目中,需要实现考试成绩排名:排名参考项为分数(score降序).参加日期(attendtime升序).第几次参加考试(frequency升序):并且,每个用户只保留一条数据(pid). 考试 ...

  2. markdown 常用格式API

    摘要 记录常用格式 参考:https://www.zybuluo.com/mdeditor 1. 标题 写法: 文字前加 #, 几个# 表示几级标题 标题下方增加 = 或 - 效果 标题1 标题2 标 ...

  3. 蓝桥杯比赛javaB组练习《方格填数》

    方格填数 如下的10个格子   +--+--+--+   |  |  |  |+--+--+--+--+|  |  |  |  |+--+--+--+--+|  |  |  |+--+--+--+ ( ...

  4. SpringMVC+MyBatis 事务管理二

    前言 上篇主要从编程式事务和声明式事务注解的形式来了解了事务,而这篇我们针对AOP的方式来实现事务.先回顾下事务的基础知识事务的隔离级别和事务的传播行为.使用aop 配置事务时注意引用aspectjw ...

  5. VS2013+MFC串口控件的简单上位机

    因为做东西,正好用到这里.所以就上传了文件分享一下. 利用VS带的MFC库,用起来还是比较方便的.空间的程序构架都是自动生成的,具体的程序自己加进去就行. 里面有整个的工程 还带有一个生成的EXE文件 ...

  6. 点击文字选中radio

    <html><body><form action="" name="form1" method="post"& ...

  7. Loadrunner 网页诊断图

    Loadrunner 11汉化后版本不包括网页诊断图,所以要想使用网页诊断图,不要汉化.12.50版本汉化后不受影响. 场景执行完,进行analysis时,才能打开网页诊断图. 网页诊断图中组件下载时 ...

  8. Win7 IE11无法打开的可能解决办法

    IE11点击后无反应,应该如何解决呢?我的机器出现上述情况后,采用下面的方法解决了问题:第一步,进入Windows 7的运行,打开Regedit,即注册表编辑器.依次找到 >>HKEY_C ...

  9. SQL存储过程和函数

    SQL存储过程: 由来:在具体应用中,一个完整的操作会包含多条SQL语句,在执行过程中需要根据前面SQL语句的执行结果有选择的执行后面的SQL语句.因此,mysql提供了数据库对象存储过程和函数. 定 ...

  10. SQL优化二(Sql性能调优)

    一·.前言:这篇博文内容非原创,是我们公司的架构师给我们做技术培训的时候讲的内容,我稍微整理了下,借花献佛.这篇博文只是做一个大概的科普介绍,毕竟SQL优化的知识太大了,几乎可以用一本书来介绍.另外, ...