webpack-start

安装步骤

1
2
3
4
5
1.npm init

2.进入目录 npm install webpack --save-dev

npm install webpack -g

注意事项

1.读取css需要loader
npm install css-loader style-loader –save-dev

在入口的JS文件引入
require(‘style-loader!css-loader!./style.css’)

2.一些参数

webpack hello.js hello.bundle.js –watch –progress –display-modules –display-reasons

使用webpack.config.js配置

改写package.json –config webpack.config.js webpack.config.js改名了也用这个

1
2
3
4
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"webpack":"webpack --config webpack.config.js --watch --progress --display-modules --display-reason --colors"
},

npm run webpack 运行

html-webpack-plugin

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
npm install html-webpack-plugin --save-dev
var htmlWebpackPlugin = require('html-webpack-plugin')


module.exports={
//单入口
// entry:'./src/script/main.js',
//多入口
//entry:['./src/script/main.js','./src/script/a.js'],
//穿一个对象,假设有3个页面a,b,c 每个页面都引入main.js 每个页面都有单独的JS a,b,c
entry:{
main:'./src/script/main.js',
a:'./src/script/a.js',
b:'./src/script/b.js',
c:'./src/script/c.js',

},
output:{
//注意路径 这里只配到dist根目录下 在filename中才指定js/
path:'./dist',
//如果entry 是一个对象,有多个键值对(chunk), filename就不能写死一个名字
//其中hash是每次打包的哈希值,chunkhash 是每次打包都不同的哈希值 相当于md5
filename:'js/[name]-[chunkhash].js',

//打包上线后,替换路径为以下路径开头
// publicPath:'http://cdn.com'
},
plugins: [
//html-webpack-plugin 这个插件可以把打包生成js自动引入到页面中,因为打包生成的名字带有
//哈希值,每次都不同
new htmlWebpackPlugin({
//模板参照根目录下的index.html,这样根目录的index.
//html里的内容也会被搬进这个插件生成的index.html
template: 'index.html',
//指定带有hash值的名称 index-[hash].html,每次都生成不同的INDEX.HTML
filename:'a.html',
//可将JS直接插入到头部,不写就是尾部
// inject:'head',
//设置false 手动在 头尾自定义script引入位置
inject:'body',
//可在index.html中通过<%= htmlWebpackPlugin.options.title %>
title:'this is a',
//任何属性都可以被通过ejs模板方式引入到页面
//date:new Date(),
//仅引入和自己页面相关的chunks
chunks:['main','a']

//压缩output
/* minify:{
//删除注释,空格
removeComments:true,
collapseWhitespace:true

}*/

}) ,

new htmlWebpackPlugin({
template: 'index.html',
filename:'b.html',
inject:'body',
title:'this is b',
//date:new Date(),
chunks:['main','b']
}) ,

new htmlWebpackPlugin({
template: 'index.html',
filename:'c.html',
inject:'body',
title:'this is c',
//date:new Date(),
chunks:['c']
})
]
}

loader

1.安装babel loader(es6 转 es5)
npm install –save-dev babel-loader babel-core

2,安装preset latest

npm install –save-dev babel-preset-latest

建立.babelrc 内容
{
“presets”:[“latest”]
}

3.安装css-loaer postcss
npm install css-loader style-loader –save-dev
npm install postcss-loader –save-dev
npm install autoprefixer –save-dev

可以查看npm官网 postcss用法
webpack.config.js
{
test: /.css$/,
loader:’style-loader!css-loader!postcss-loader’
}

根目录下建立postcss.config.js

module.exports = {
plugins: [
require(‘autoprefixer’)({
browsers:[‘last 5 versions’]
})
]
}

4,安装less-loader
$ npm install -g less
npm install less-loader –save-dev

5.安装html-loader

npm install html-loader –save-dev

6,处理图片

npm install file-loader –save-dev

npm install url-loader –save-dev
//处理图片可以用file-loader ,也可以用url-loader
//limit 限制图片大小 200000代表200K 我插入的图片是109K
//如果小于这个200K ,则插入BASE64编码,大于还是插入图片

压缩图片

npm install image-webpack-loader –save-dev