多页面应用的Webpack打包配置及开发实践指南

需积分: 9 0 下载量 138 浏览量 更新于2024-11-17 收藏 725KB ZIP 举报
资源摘要信息:"webpack_multiPages是一个关于使用webpack进行多入口页面打包的项目。项目主要使用ES6进行开发,并期望采用面向对象的方式进行编码,具体使用class语法。在打包过程中,webpack会自动压缩和合并CSS与JS文件,同时使用ESLint对代码进行检查,确保代码质量。项目还会自动生成HTML文件,并自动抽取CSS文件。此外,项目支持使用sass或less预处理器来编写样式,以及使用jquery及其插件来处理前端交互。可以通过npm run dev启动开发环境,npm run lint在开发时进行代码检测,以及npm run build命令来构建生产环境的代码。" 知识点详细说明: 1. 多入口页面打包: 在webpack中实现多页面应用(Multi-page application,MPA)的打包,需要配置多个入口点(entry points)。每个入口点对应一个HTML页面,webpack会为每个页面生成相应的打包文件。 2. ES6开发: ES6即ECMAScript 2015,为JavaScript带来了很多新的特性,包括箭头函数、类、模块、promise等。webpack支持ES6语法,并可通过Babel等工具将ES6代码转换为浏览器能理解的ES5代码。 3. 面向对象开发(class): JavaScript是一种基于原型的面向对象语言,ES6引入了class关键字,使得JavaScript开发者能够更容易地进行面向对象编程。 4. 自动压缩合并CSS和JS文件: webpack可以结合插件如UglifyJSPlugin或TerserPlugin来压缩JavaScript文件,使用optimize-css-assets-webpack-plugin插件来压缩CSS文件,以及mini-css-extract-plugin插件来将CSS抽离成单独的文件。 5. 使用ESLint进行代码检查: ESLint是一个插件化的JavaScript代码质量检查工具,可以帮助开发者发现代码中潜在的问题。通常在webpack的构建过程中配置ESLint插件,以实现代码检查。 6. 自动生成HTML文件: 通过使用html-webpack-plugin插件,可以在webpack构建过程中自动生成HTML文件,并自动引入打包好的CSS和JS文件。 7. 自动抽取CSS文件: webpack通过配置如mini-css-extract-plugin插件,可以实现将CSS从JS中抽取出来,生成独立的CSS文件。 8. 使用sass或less: Sass和Less都是流行的CSS预处理器,它们允许开发者使用变量、混入、嵌套等特性来编写更加灵活和可维护的CSS代码。webpack通过对应的loader(如sass-loader或less-loader)来支持这些预处理器。 9. 使用jquery及jquery插件: jquery是一个快速、小巧的JavaScript库,它简化了HTML文档遍历、事件处理、动画和Ajax交互。webpack可以通过引入jquery作为依赖,并使用相应的loader(如expose-loader)将其暴露给全局变量,或者将jquery打包进最终的文件中。 10. 开发环境与生产环境的构建命令: webpack允许通过配置不同的环境(development和production)来区分开发和生产环境下的构建配置。通常会使用cross-env来设置环境变量,并通过npm脚本来运行对应的webpack配置文件,如npm run dev和npm run build。 11. npm脚本的使用: npm run dev和npm run build是npm脚本(scripts)的示例,用于在package.json文件中定义和执行常用的命令。这种做法能够简化开发者的操作,提高效率。

index.js:4130 Cannot find module './uni_modules/uview-ui/components/u-navbar/u-navbar.vue' Qld0 @ index.js:4130 __webpack_require__ @ index.js:854 fn @ index.js:151 JLrY @ index.js:1430 __webpack_require__ @ index.js:854 fn @ index.js:151 eval @ kyBj:2 kyBj @ index.js:4897 __webpack_require__ @ index.js:854 fn @ index.js:151 eval @ main.js:36 Tglg @ index.js:4322 __webpack_require__ @ index.js:854 fn @ index.js:151 1 @ index.js:1057 __webpack_require__ @ index.js:854 checkDeferredModules @ index.js:46 (anonymous) @ index.js:994 (anonymous) @ index.js:997 index.js:4131 1. 排查组件名称拼写是否正确 Qld0 @ index.js:4131 __webpack_require__ @ index.js:854 fn @ index.js:151 JLrY @ index.js:1430 __webpack_require__ @ index.js:854 fn @ index.js:151 eval @ kyBj:2 kyBj @ index.js:4897 __webpack_require__ @ index.js:854 fn @ index.js:151 eval @ main.js:36 Tglg @ index.js:4322 __webpack_require__ @ index.js:854 fn @ index.js:151 1 @ index.js:1057 __webpack_require__ @ index.js:854 checkDeferredModules @ index.js:46 (anonymous) @ index.js:994 (anonymous) @ index.js:997 index.js:4132 2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom Qld0 @ index.js:4132 __webpack_require__ @ index.js:854 fn @ index.js:151 JLrY @ index.js:1430 __webpack_require__ @ index.js:854 fn @ index.js:151 eval @ kyBj:2 kyBj @ index.js:4897 __webpack_require__ @ index.js:854 fn @ index.js:151 eval @ main.js:36 Tglg @ index.js:4322 __webpack_require__ @ index.js:854 fn @ index.js:151 1 @ index.js:1057 __webpack_require__ @ index.js:854 checkDeferredModules @ index.js:46 (anonymous) @ index.js:994 (anonymous) @ index.js:997 index.js:4135 3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件 Qld0 @ index.js:4135 __webpack_require__ @ index.js:854 fn @ index.js:151 JLrY @ index.js:1430 __webpack_require__ @ index.js:854 fn @ index.js:151 eval @ kyBj:2 kyBj @ index.js:4897 __webpack_require__ @ index.js:854 fn @ index.js:151 eval @ main.js:36 Tglg @ index.js:4322 __webpack_require__ @ index.js:854 fn @ index.js:151 1 @ index.js:1057 __webpack_require__ @ index.js:854 checkDeferredModules @ index.js:46 (anonymous) @ index.js:994 (anonymous) @ index.js:997 Request.js:53 Uncaught TypeError: f is not a function at Request.setConfig (Request.js:53:23) at Object.install (http.interceptor.js:4:24) at Vue.use (chunk-vendors.js:7461:22) at eval (main.js:160:5) at Object.Tglg (index.js:4322:1) at __webpack_require__ (index.js:854:30) at fn (index.js:151:20) at 1 (index.js:1057:18) at __webpack_require__ (index.js:854:30) at checkDeferredModules (index.js:46:23)解决

2023-07-14 上传