![Vue.js 3.0从入门到精通(视频教学版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/154/44510154/b_44510154.jpg)
3.12.2 配置一个完整项目的webpack
新建项目文件夹webpack_test,这里需要4个相关的文件,分别作为JavaScript的入口文件app.js,存放需要调用方法的bar.js文件,引入导出生成的JavaScript文件index.html,用于webpack打包文件配置的webpack.config.js文件。
在开始之前,请确保安装了Node.js的最新版本。使用Node.js最新的长期支持版本(Long Term Support,LTS)是理想的起步;使用旧版本可能会遇到各种问题,因为可能会缺少webpack功能,或者缺少相关package包。
在本地安装webpack,本书使用的webpack版本为webpack 3.6.0。
要安装最新版本或特定版本,请运行以下命令之一。如果读者是初学者,建议使用第2条命令安装和笔者相同的版本,以方便学习。
![](https://epubservercos.yuewen.com/AF1F26/23721640501031706/epubprivate/OEBPS/Images/Figure-P49_164896.jpg?sign=1739939729-9yewG7pjzceDkUgpYzwEegDxy0Zo3O7C-0-6e27b2c45a843ae05c21b545c9951083)
对于大多数项目,webpack官方建议本地安装,这样可以使开发者在引入破坏式变更(breaking change)的依赖时,更容易分别升级项目。
通常,webpack通过运行一个或多个npm scripts,会在本地node_modules目录中查找安装的webpack:
![](https://epubservercos.yuewen.com/AF1F26/23721640501031706/epubprivate/OEBPS/Images/Figure-P49_164897.jpg?sign=1739939729-FFxhQfbqMkleBCh3yiK5zEhp9fx9eZPB-0-5428265cc57837109967f2517eced8dd)
使用npm安装时也可以采用全局安装方式,使webpack在全局环境下可用。但是不推荐全局安装webpack,因为会将我们项目中的webpack锁定到指定版本,并且在使用不同的webpack版本的项目中,可能会导致构建失败。
在项目中新建文件夹app,作为JavaScript的代码存放处,新建public文件夹作为index.html的文件夹。
编写app文件夹中的两个JavaScript文件,为了测试JavaScript的import方式,这里需要编写两个JavaScript文件,分别是app.js和bar.jso。
首先编写bar.js文件,让其在页面上弹出一个提示框,代码如下:
![](https://epubservercos.yuewen.com/AF1F26/23721640501031706/epubprivate/OEBPS/Images/Figure-P50_164898.jpg?sign=1739939729-Y15y6p3E89Oj4zaD2sCcxsreXplLgGPG-0-cace41f8249631fe7ec6a97484376ae7)
在app.js文件中需要引入上述JS文件,其代码如下:
![](https://epubservercos.yuewen.com/AF1F26/23721640501031706/epubprivate/OEBPS/Images/Figure-P50_164899.jpg?sign=1739939729-fvueXu7W9RqFZp6JL1vmpwemkcTUWcxL-0-417498afcadb59c262f6cc266b87ccaa)
在public文件夹中新建一个index.html文件,需要在该文件夹中引入webpack生成的bundle.js文件(后期生成,非自己创建),其代码如下:
![](https://epubservercos.yuewen.com/AF1F26/23721640501031706/epubprivate/OEBPS/Images/Figure-P50_164900.jpg?sign=1739939729-LZFEP1Siv0qKTF6VS2vkiB1LdYHttpBR-0-7807e91bc1378e4b257a0d32ff8b3c0a)
接下来需要编辑webpack的配置文件即webpack.config.js文件,代码如下:
![](https://epubservercos.yuewen.com/AF1F26/23721640501031706/epubprivate/OEBPS/Images/Figure-P50_164901.jpg?sign=1739939729-86J7InDxpGxaqI5GNY4hJCNzKxXml8ak-0-f8ca4ef98b4340a2f224d0c0bf56fb28)