vite 如何按照不同的功能目录进行打包比如用户中心的打包只包含用户中心目录的代码及依赖其他订单中心的代码不会被打包这个如何实现
可以使用webpack的code splitting功能来实现按照不同的功能目录进行打包。
首先,将各个功能目录单独分为不同的entry,如用户中心为一个entry,订单中心为一个entry。
然后,在webpack配置文件中使用code splitting的方式,将每个entry所依赖的代码进行分离打包,生成对应的chunk。
最后,在生成的HTML页面中,按照需要引入对应的chunk即可实现按照不同的功能目录进行打包。
举个例子,假设有以下目录结构:
src
├── userCenter
│ ├── index.js
│ ├── ...
└── orderCenter
├── index.js
├── ...
在webpack配置文件中,可以这样配置:
module.exports = {
entry: {
userCenter: './src/userCenter/index.js',
orderCenter: './src/orderCenter/index.js',
},
output: {
filename: '[name].js',
path: path.resolve(__dirname, 'dist'),
},
optimization: {
splitChunks: {
chunks: 'all',
cacheGroups: {
userCenter: {
name: 'userCenter',
test: /[\\/]src[\\/]userCenter[\\/]/,
},
orderCenter: {
name: 'orderCenter',
test: /[\\/]src[\\/]orderCenter[\\/]/,
},
},
},
},
};
这里使用了splitChunks的配置,将userCenter和orderCenter的代码分别打包到对应的chunk中。
最后,在HTML页面中按照需要引入对应的chunk即可:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>My App</title>
</head>
<body>
<div id="userCenter"></div>
<script src="userCenter.js"></script>
</body>
</html>
这样,只有userCenter的代码及依赖会被打包到userCenter.js中,而orderCenter的代码不会被打包
原文地址: http://www.cveoy.top/t/topic/hpmv 著作权归作者所有。请勿转载和采集!