$ npm install webpack -g
$ npm init # 会自动生成一个package.json文件
$ npm install webpack --save-dev #将webpack增加到package.json文件中
$ npm install webpack-dev-server --save-dev
这里有最基本的使用方法,给大家一个感性的认识
document.write("看看如何让它工作!");
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<script type="text/javascript" src="bundle.js" charset="utf-8"></script>
</body>
</html>
$ webpack ./entry.js bundle.js
module.exports = "现在的内容是来自于content.js文件!";
document.write(require("./content.js"));
进行加载器试验
body {
background: yellow;
}
require("!style-loader!css
-loader
!./style.css"); document.write(require("./content.js"));
(这里要注意,webpack2不支持简写!style!css
!./style.css,亲试
)
$ npm install css-loader style-loader # 安装的时候不使用 -g
$ webpack ./entry.js bundle.js --module-bind "css=style!css"
创建我们webpack的配置文件webpack.config.js:(这个文件需要手码的哦)
var webpack = require(‘webpack‘); var commonsPlugin = new webpack.optimize.CommonsChunkPlugin(‘common.js‘); module.exports = { entry: "./main.js", output: { path: ‘./build‘, // 图片和 JS 会打包到这里来 filename: "bundle.js" }, module: { loaders: [ { test: /\.css$/, loader: "style-loader!css-loader" }, { test: /\.less$/, loader: ‘style-loader!css-loader!less-loader‘ }, // 用 ! 来连接多个 loader { test: /\.(png|jpg)$/, loader: ‘url-loader?limit=8192‘ } // 内联 base64 URLs, 限定 <=8k 的图片, 其他的用 URL ] }, resolve: { extensions: [‘‘, ‘.js‘, ‘.json‘, ‘coffee‘] }, plugins: [ new webpack.HotModuleReplacementPlugin(), new webpack.NoErrorsPlugin() ] }
对这个配置文件解释下:
1) entry:entry可以是个字符串或数组或者是对象。指定打包的入口文件,一个键值对,就是一个入口文件
2) output:包结果文件的名称,在这里我指定它在./build的文件夹打包输出
3) resolve:用于指明程序自动补全识别哪些后缀,
注意一下, extensions 第一个是空字符串! 对应不需要后缀的情况.
4) module:以及一些正则。当需要加载的文件匹配test的正则时,就会调用后面的loader对文件进行处理,这正是webpack强大的原因。
比如这里定义了凡是.js结尾的文件都是用babel-loader做处理,而.jsx结尾的文件会先经过jsx-loader处理,然后经过babel-loader处理。当然这些loader也需要通过npm install安装
require(‘./bootstrap.css‘); require(‘./myapp.sass‘); var img = document.createElement(‘img‘); img.src = require(‘./glyph.png‘);
当你引用 CSS(或者 SASS 吧), Webpack 会将 CSS 内联到 JavaScript 包当中, require() 会在页面当中插入一个<style>标签. 当你引入图片, Webpack 在包当中插入对应图片的 URL, 这个 URL 是由require()返回, 而图片可能被转化成 base64 格式的 dataUrl。但是注意,所有这些要在 webpack.config.js 文件写好对应的 loader:
5) plugins: 这里定义了需要使用的插件,
比如commonsPlugin在打包多个入口文件时会提取出公用的部分,生成common.js
这里还配置了NoErrorsPlugin插件,用来跳过编译时出错的代码并记录,使编译后运行时的包不会发生错误:当然Webpack还有很多其他的配置,具体可以参照它的配置文档
发布服务器
$ npm install webpack-dev-server -g
$ webpack-dev-server --progress --colors
打开http://localhost:8080/webpack-dev-server/bundle可以看到编译后的网页,
这会绑定一个小型express服务器到localhost:8080,来为你的静态资源及bundle(自动编译)服务。通过访问http://localhost:8080/webpack-dev-server/bundle,bundle每次重编译后浏览器页面都会自动更新。
原文:http://www.cnblogs.com/zhus/p/6486635.html