<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[刘新修]]></title> 
<link>http://pic1.liuxinxiu.com:80/index.php</link> 
<description><![CDATA[刘新修的个人博客 (Liuxinxiu'S Blog)]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[刘新修]]></copyright>
<item>
<link>http://pic1.liuxinxiu.com:80/webpack_install_setup/</link>
<title><![CDATA[前端开发工程化—— webpack 的搭建与配置]]></title> 
<author>刘新修 &lt;admin@yourname.com&gt;</author>
<category><![CDATA[NodeJs平台]]></category>
<pubDate>Sun, 12 Jun 2016 09:48:16 +0000</pubDate> 
<guid>http://pic1.liuxinxiu.com:80/webpack_install_setup/</guid> 
<description>
<![CDATA[ 
	<p>webpack 是一个npm包，所以我们通过 npm 命令来全局安装：</p><div>D:&#92;wmnp3&#92;nodeJs&gt;<strong><span style="color: rgb(0, 0, 255);">npm install webpack -g</span></strong></div><div>安装完成后，命令行下就有 webpack 命令可用，执行 webpack --help 可以查看 webpack 提供的各种命令。</div><div>当然如果常规项目还是把依赖写入 package.json 包去更人性化，初始化创建一个package.json文件：</div><div>cd D:&#92;wmnp3&#92;wwwroot&#92;nodeJs&#92;MVC&#92;helloWorld</div><div><span style="color: rgb(0, 0, 255);"><strong>npm init</strong></span></div><div><strong><span style="color: rgb(0, 0, 255);">npm install webpack --save-dev </span></strong>在当前目录下安装局域的webpack</div><div><strong>安装 sass-loader 相关的加载器：</strong></div><div><img src="http://at.liuxinxiu.com/2016/06/image/c1.GIF" width="750" height="487" alt="" /></div><div><strong>安装 CSS 相关的加载器：</strong></div><div><img src="http://at.liuxinxiu.com/2016/06/image/c2.GIF" width="750" height="246" alt="" /></div><div><strong>安装配置图片加载器url-loader</strong></div><div>它会将样式中引用到的图片转为模块来处理，使用该加载器需要先进行安装：</div><div><img src="http://at.liuxinxiu.com/2016/06/image/c3(1).gif" width="750" height="330" alt="" /></div><div><strong>安装 babel-loader 相关的加载器：</strong></div><div><div>使用Babel转译器，帮助我们将ES6代码转译为主流浏览器支持的ES5代码。</div><div>babel-loader加载器能将ES6的代码转换成ES5代码，这使我们现在可以使用ES6了；我们在使用之前，我们需要安装babel-loader</div><div>npm install babel-loader --save-dev --registry=https://registry.npm.taobao.org</div><div>npm install babel-preset-es2015 --save-dev</div></div><div><img src="http://at.liuxinxiu.com/2016/06/image/c4.GIF" width="750" height="514" alt="" /></div><div><img src="http://at.liuxinxiu.com/2016/06/image/c5.GIF" width="750" height="484" alt="" /></div><div><strong>安装babel-preset-es2015</strong></div><div><img src="http://at.liuxinxiu.com/2016/06/image/c6.GIF" width="750" height="459" alt="" /></div><div><strong>安装babel-runtime</strong></div><div><img src="http://at.liuxinxiu.com/2016/06/image/c8.GIF" width="750" height="737" alt="" /></div><div><strong>ExpressJS启动服务：http://127.0.0.1:3000</strong></div><div><img src="http://at.liuxinxiu.com/2016/06/image/c10.GIF" width="750" height="778" alt="" /></div><div><strong>webpack相关命令如下：</strong></div><div><div>webpack 最基本的启动webpack命令</div><div>webpack -w 提供watch方法，实时进行打包更新</div><div>webpack -p 对打包后的文件进行压缩</div><div>webpack -d 提供SourceMaps，方便调试</div><div>webpack --colors 输出结果带彩色，比如：会用红色显示耗时较长的步骤</div><div>webpack --profile 输出性能数据，可以看到每一步的耗时</div><div>webpack --display-modules 默认情况下 node_modules 下的模块会被隐藏，加上这个参数可以显示这些被隐藏的模块</div><div>webpack --help 帮助说明</div><div>&nbsp;</div></div><div><img src="http://at.liuxinxiu.com/2016/06/image/c9.GIF" width="750" height="790" alt="" /></div><div>webpack打包会根据依赖自动并合代码模块，使用<strong><span style="color: rgb(255, 0, 0);">webpack -p</span></strong> 压缩代码成一行.从而加快页面请求速度，使用前后对比：</div><div><strong>压缩代码前：</strong></div><div><img src="http://at.liuxinxiu.com/2016/06/image/2016-06-12_173301.GIF" width="999" height="562" alt="" /></div><div><strong>压缩入口代码后：</strong></div><div><img src="http://at.liuxinxiu.com/2016/06/image/qqss.jpg" width="800" height="718" alt="" /></div><div><span style="color: rgb(0, 0, 255);"><strong>最后附上webpack.config.js 的配置文件：</strong></span></div><div class="codeText"><div class="codeHead">JavaScript代码</div><ol start="1" class="dp-c"><li class="alt"><span><span class="keyword">var</span><span> path=require(</span><span class="string">&quot;path&quot;</span><span>);&nbsp;&nbsp;</span></span></li><li><span><span class="keyword">var</span><span> webpack=require(</span><span class="string">'webpack'</span><span>);&nbsp;&nbsp;</span></span></li><li class="alt"><span><span class="keyword">var</span><span> ExtractTextPlugin=require(</span><span class="string">&quot;extract-text-webpack-plugin&quot;</span><span>);&nbsp;&nbsp;</span></span></li><li><span><span class="comment">/**** webpack.config.js ****/</span><span>&nbsp;&nbsp;</span></span></li><li class="alt"><span>module.exports=&#123;&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;context:__dirname+<span class="string">'/assets'</span><span>, </span><span class="comment">//requre('a.js')的时候从哪个路径查找</span><span>&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;entry:&#123;&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;main:__dirname+<span class="string">&quot;/assets/js/public/main.js&quot;</span><span>,&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;index:__dirname+<span class="string">&quot;/assets/js/public/index.js&quot;</span><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&#125;,&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">/**** 新添加的module属性 ****/</span><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;output:&#123;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path:__dirname+<span class="string">'/build/js/'</span><span>,&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filename:<span class="string">'[name].bundle.js'</span><span>, </span><span class="comment">//模版基于entry的key</span><span>&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;publicPath:<span class="string">&quot;/xfile/&quot;</span><span> </span><span class="comment">//引用你的文件时考虑使用的地址(可设成http地址, 如:http://cdn.my.com)</span><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&#125;,&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">/**** 新添加的module属性 ****/</span><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;module:&#123;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loaders:[&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;test:/&#92;.(jpg&#124;png&#124;svg)$/i,&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loaders:[&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">'image?...'</span><span>,&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">'url?limit=10000&amp;name=img/[name].[hash:8].[ext]'</span><span>,&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;,&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;test:/&#92;.js$/,&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exclude:/(node_modules&#124;bower_components)/,&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loader:<span class="string">'babel'</span><span>,&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;query:&#123;&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;presets:[<span class="string">'es2015'</span><span>],&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;plugins:[<span class="string">'transform-runtime'</span><span>]&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;,&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;test: /&#92;.css$/,loader: ExtractTextPlugin.extract(<span class="string">&quot;style-loader&quot;</span><span>,</span><span class="string">&quot;css-loader&quot;</span><span>)&#125;,&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;test: /&#92;.(jpg&#124;png&#124;svg)$/,loader:<span class="string">&quot;url?limit=8192&quot;</span><span>&#125;,&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;test: /&#92;.scss$/, loader:<span class="string">&quot;style!css!sass&quot;</span><span>&#125;&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&#125;,&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;plugins:[&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">//new webpack.optimize.CommonsChunkPlugin('common.js'),</span><span>&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">new</span><span> ExtractTextPlugin(</span><span class="string">&quot;[name].css&quot;</span><span>),&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">new</span><span> webpack.ProvidePlugin(&#123;&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;jQuery&quot;</span><span>:path.resolve(&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;__dirname,&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;js/lib/jquery/jquery-1.8.3.js&quot;</span><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;$&quot;</span><span>:path.resolve(&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;__dirname,&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;js/lib/jquery/jquery-1.8.3.js&quot;</span><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;),&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;]&nbsp;&nbsp;</span></li><li class="alt"><span>&#125;&nbsp;&nbsp;</span></li></ol></div><br/>Tags - <a href="http://pic1.liuxinxiu.com:80/tags/node/" rel="tag">node</a> , <a href="http://pic1.liuxinxiu.com:80/tags/webpack/" rel="tag">webpack</a>
]]>
</description>
</item><item>
<link>http://pic1.liuxinxiu.com:80/webpack_install_setup/#blogcomment</link>
<title><![CDATA[[评论] 前端开发工程化—— webpack 的搭建与配置]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://pic1.liuxinxiu.com:80/webpack_install_setup/#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>