webpack -> vue Component 从入门到放弃(一)

此篇文章仅仅是整理自己接触webpack的入门过程,可能有很多不正确的地方,希望大家谅解,并指出错误帮助改进。

对于webpack的介绍和前期对他的入门使用,我觉得官方中文网)已经介绍的很简单了,但是为了文章的可读性,还是按照自己的方式从头到尾的码一遍。

What is webpack?

Webpack 是一个模块打包器。它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源。(附上不明觉厉的解析图)

《webpack -> vue Component 从入门到放弃(一)》” /></span></p><blockquote><p>First step</p></blockquote><p>先来安装个node.js(node官网下载),打个预防针,我后面用npm(node包管理器)安装依赖包的时候,经常安装不成功,由于资源文件的不稳定,所以我建议装个淘宝镜像。</p><pre><code>$ npm install cnpm -g --registry=https://registry.npm.taobao.org
$ cnpm -v //安装后查看一下版本信息,以确认是否安装成功
</code></pre><p>安装成功后,之后安装依赖包都可以用 cnpm 代替 npm 执行,例如:</p><pre><code>$npm install

//等于

$ cnpm install
</code></pre><p>接下来全局安装 webpack,来练练手</p><pre><code>$ cnpm install webpack -g
</code></pre><p>此时 webpack 已经安装到了全局环境下,可以通过命令行webpack -h试试。</p><p>通常我们会将 webpack 安装到项目的依赖中,这样就可以使用项目本地版本的 webpack。项目目录中我们要先生成package.json文件,</p><pre><code># 确保已经进入项目目录

$ cnpm init

#当然也可以手动创建一个package.json,然后填入信息

{

Second Step

我们来创建几个文件,测试一下webpack的基础功能(此demo与官网贴出基本一致)

#index.html
<html>
    <head>
        <meta charset="utf-8">
    </head>
    <body>
        <div id="app"></div>
         <script src="bundle.js"></script>
         //bundle.js 是webpack编译时生成的文件
    </body>
</html>

#entry.js
document.getElementById('app').innerHTML="it works";

可以开始用webpack打包了

$ webpack entry.js bundle.js

《webpack -> vue Component 从入门到放弃(一)》” /></span><br />在浏览器中打开 index.html 就可以看到效果了。</p><p>我们再加一个文件</p><pre><code>#content.js
var p= document.createElement(

#更改一下entry.js
document.getElementById('app').innerHTML="it works";
require("./content.js");

然后再次运行 webpack

$ webpack entry.js bundle.js

webpack 会再次显示日志

《webpack -> vue Component 从入门到放弃(一)》” /></span></p><p>Webpack 会分析入口文件,解析包含依赖关系的各个文件。这些文件(模块)都打包到 bundle.js 。Webpack 会给每个模块分配一个唯一的 id 并通过这个 id 索引和访问模块。在页面启动时,会先执行 entry.js 中的代码,其它模块会在运行 require 的时候再执行。</p><blockquote><p>这篇文章所涉及到的demo文件目录:</p><ul><li><p>bundle.js</p></li><li><p>content.js</p></li><li><p>entry.js</p></li><li><p>index.html</p></li><li><p>package.json</p></li><li><p>node-modules</p></li></ul></blockquote><p>是不是不过瘾,太简单了?!<br />接下里我们加入webpack 的loader(很重要的一个东东)<br />先来看看 loader 的介绍:</p><p>Webpack 本身只能处理 JavaScript 模块,如果要处理其他类型的文件,就需要使用 loader 进行转换。</p><p>Loader 可以理解为是模块和资源的转换器,它本身是一个函数,接受源文件作为参数,返回转换的结果。这样,我们就可以通过 require 来加载任何类型的模块或文件,比如 CoffeeScript、 JSX、 LESS 或图片。</p><p>先来看看 loader 有哪些特性?</p><p>Loader 可以通过管道方式链式调用,每个 loader 可以把资源转换成任意格式并传递给下一个 loader ,但是最后一个 loader 必须返回 JavaScript。<br />Loader 可以同步或异步执行。<br />Loader 运行在 node.js 环境中,所以可以做任何可能的事情。<br />Loader 可以接受参数,以此来传递配置项给 loader。<br />Loader 可以通过文件扩展名(或正则表达式)绑定给不同类型的文件。<br />Loader 可以通过 npm 发布和安装。<br />除了通过 package.json 的 main 指定,通常的模块也可以导出一个 loader 来使用。<br />Loader 可以访问配置。<br />插件可以让 loader 拥有更多特性。<br />Loader 可以分发出附加的任意文件。<br />Loader 本身也是运行在 node.js 环境中的 JavaScript 模块,它通常会返回一个函数。大多数情况下,我们通过 npm 来管理 loader,但是你也可以在项目中自己写 loader 模块。</p><p>按照惯例,而非必须,loader 一般以 xxx-loader 的方式命名,xxx 代表了这个 loader 要做的转换功能,比如 json-loader。</p><p>在引用 loader 的时候可以使用全名 json-loader,或者使用短名 json。这个命名规则和搜索优先级顺序在 webpack 的 resolveLoader.moduleTemplates api 中定义。</p><pre><code>Default: [

看那么多,其实还不如来操作一下。。。那就等下一篇介绍吧,一篇文章有太多内容,会让人很乏的~~~

webpack -> vue Component 从入门到放弃(四)
webpack -> vue Component 从入门到放弃(二)
webpack -> vue Component 从入门到放弃(三)
github源代码

    原文作者:翻滚的猿
    原文地址: https://segmentfault.com/a/1190000008474299
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞