【学习任务】从0到1配置webpack的多入口(entry)打包项目
我要参与
【学习任务】从0到1配置webpack的多入口(entry)打包项目
学习任务 675
等10人参与
来源: 第3周 / 大前端.

通常,我们都是无感使用webpack,比如:用于类似vue-cli的工具之中,学习webpack最好是从0到1配置一个项目,完成项目的打包需求。

 

任务需求:

主要应用于大多数传统类型的项目,比如多个html的入口文件。还有与java或者python结合的项目中,如果需要使用预编译语言sass,还需要对图片进行Hash处理,还需要babel对高级的ES语法进行转译,这时候就需要一个多入口打包的webpack配置工程了。

 

思路点拨:

建议:使用webpack 4.x 或者5.x

配置思想:使用glob模块,读取对应目录下的HTML文件,形成对应的页面与js。

工程目录结构:

.
├── README.md
├── config
│   ├── env-config.js
│   ├── webpack.base.conf.js
│   ├── webpack.dev.conf.js
│   ├── webpack.prod.conf.js
│   └── webpack.rules.conf.js
├── package.json
├── postcss.config.js
├── public
│   └── logo-long.png
└── src
   ├── assets
   │   ├── css
   │   │   └── common.css
   │   └── images
   │       └── time.jpg
   └── pages
       ├── deep_page
       │   └── page3
       ├── index
       │   ├── index.html
       │   ├── index.js
       │   └── index.scss
       ├── page1
       │   ├── index.html
       │   ├── index.js
       │   └── index.scss
       └── page2
           ├── index.html
           ├── index.js
           └── index.scss

主要的方法:

function getEntry() {
   var entry = {};
   //读取src目录所有page入口
   glob.sync('./src/pages/**/*.js')
       .forEach(function (name) {
           var start = name.indexOf('src/') + 4,
               end = name.length - 3;
           var eArr = [];
           var n = name.slice(start, end);
           n = n.slice(0, n.lastIndexOf('/')); //保存各个组件的入口
           n = n.split('pages/')[1];
           eArr.push(name);
           entry[n] = eArr;
       });
   return entry;
};


去发布

登录后即可发布作业,立即

我的作业

全部作业

意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师