在已安装node.js
的状况下,输入如下命令行:javascript
npm install webpack -g
建立一个空的文件夹,分别建立如下文件:css
entry.js
index.htmlhtml
js中写入以下内容:java
document.write("webpack works.");
html内容以下:node
<html> <head> <meta charset="utf-8"> </head> <body> <script type="text/javascript" src="bundle.js" charset="utf-8"></script> </body> </html>
在控制台中,咱们运行以下指令:webpack
webpack ./entry.js bundle.js
webpack将会编译,生成捆绑文件。结果以下:
程序员
让咱们再增长一个js,如下是文件名与内容web
content.js
module.exports = "It works from content.js.";npm
很是典型的CommonJs式的代码,对吧。
修改entry.js的内容app
去掉 document.write("It works.");
增长 document.write(require("./content.js"));
从新运行编译指令,就能够在本地访问index.html看到新的结果了。
webpack 除了能够解决js的依赖外,还能解决css的引用,压缩的问题。
这时,咱们须要使用loader,使用css-loader
来处理css文件,使用style-loader
来支持改动样式。
运行指令
npm install css-loader style-loader
更新entry.js的内容
require("!style!css!./style.css"); document.write(require("./content.js"));
咱们经过
!style!css!
这样的形式,来指定Loader的传输管道,通过了一系列的loader处理后,结果将会是一个js组件。
编译
webpack ./entry.js bundle.js
从新浏览页面,就能够看到这样的结果。
经过在命令行中指定须要的loader,咱们能够避免在刚才require部分的代码中,写出!style!css!
webpack ./entry.js bundle.js --module-bind "css=style!css"
这样,咱们能够将entry.js修改,并不影响结果
require("./style.css"); document.write(require("./content.js"));
程序员老是讨厌繁琐的人工操做,咱们能够将刚才的--module-bind "css=style!css"
转由配置文件完成。
目录下添加webpack.config.js
module.exports = { entry: "./entry.js", output: { path: __dirname, filename: "bundle.js" }, module: { loaders: [ { test: /\.css$/, loader: "style!css" } ] } };
这时,咱们只须要输入命令webpack
就能够获得相同的结果啦。
做为程序员,咱们不但愿每次有改动后,都要手动运行指令。
webpack --watch
使用Watch模式时,webpack将会检测全部入口js文件及其依赖项的变化,一旦变化发生,编译过程将会从新运行。