webpack 文件打包

上一节中,我们已经安装好了 webpack ,本节我们来学习 何使用 webpack 进行文件打包。

使用webpack打包文件

要打包文件,首先我们需要初始化一个项目,前面我们已经创建好了一个 xkd_webpack 的项目,并且这个项目根目录下已经有了一个 package.json 文件、package-lock.json 文件和一个 node_modules 文件夹,如下所示: 在实际项目中,为了方便管理许多文件,我们可能需要创建一个 src 文件夹存放入口文件等开发文件,然后创建一个 dist 文件夹存放最终打包的文件,还有其他类型的文件,为了方便管理我们也会放在同一个目录下。

但是因为我们这里只是举例说一下如何使用 webpack 打包文件,所以我们直接项目根目录下,创建一个静态页面 index.html 和一个 JS 的入口文件 index.js 文件,文件名称是我们自定义的,如果你想使用其他的名称也是可以的。

下面是 index.html 文件的内容:

<html>
    <head>
        <meta charset="utf-8">
        <title>webpack入门</title>
    </head>
    <body>
        <script type="text/javascript" src="bundle.js"></script>
    </body>
</html>

在这个 HTML 文件中我们引入了一个 bundle.js 文件,这个 bundle.js 文件就是最终的打包后的文件,但是现在还没有生成哟,要等我们执行完打包命令后才会生成这个文件。

然后入口文件 index.js 的内容如下所示:

document.write('你好,侠课岛!');

最后执行下列命令,就可以成功将 index.js 文件打包到 bundle.js文件中:

webpack index.js -o bundle.js

执行命令效果如下所示:

命令执行成功后,项目根目录下会生成一个 bundle.js 文件。这个文件的作用就是用了一个立即执行函数,然后将 index.js 的内容封装成一个函数,作为参数传进内部执行,这样就完成了文件的打包:

此时我们在浏览器中打开 index.html 文件,页面将会显示 "你好,侠课岛!",这同时也能证明 index.js 文件成功打包到了 bundle.js 文件中,因为我们只在 index.html 文件中引入了 bundle.js 文件。

打包多个文件

当然我们在项目中肯定不只有一个 .js 文件,那么如果我们除了 index.js 文件还有其他的 .js 文件,要如何做呢。

示例:

例如项目中还有一个 module.js 文件,内容如下所示:

module.exports = '侠课岛欢迎你!'

这样我们可以修改入口文件 index.js,将创建好的 module.js 模块引入到入口文件中:

document.write('你好,侠课岛!')
document.write(require('./module.js')) // 引入模块

再次执行 webpack index.js -o bundle.js ,会重新打包文件。

在页面启动时,会先执行 index.js 文件中的代码,其它文件中的代码会在执行到 require 语句的时候再执行。 此时刷新浏览器,我们可以看到浏览器中的显示内容发现了改变,显示内容变为 "你好,侠课岛!侠课岛欢迎你!"。

webpack 会分析入口文件,解析包含依赖关系的各个文件,这些文件都打包到 bundle.js 中。webpack 会给每个模块分配一个唯一的 id 并通过这个 id 索引和访问模块。

总结

在旧版本的 webpack 中,我们是使用 webpack index.js bundle.js 命令来执行打包操作,而新的 webpack4.0+ 版本打包文件时要在命令中加一个 -o ,否则会报错。

链接:https://www.9xkd.com/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章