实现webpack中babel-loader排除特定node模块转译功能

需积分: 31 0 下载量 80 浏览量 更新于2024-12-26 收藏 122KB ZIP 举报
资源摘要信息:"本文详细介绍了如何使用`babel-loader-exclude-node-modules-except`这个工具,创建正则表达式以排除webpack中babel转译过程中的node_modules模块,同时允许特定模块被包含。这个技术主要用于优化构建过程,提高构建速度并减少不必要的转译。" 知识点一:webpack webpack是一个现代JavaScript应用程序的静态模块打包器(static module bundler)。当webpack处理应用程序时,它会递归地构建一个依赖关系图,其中包含应用程序需要的每个模块,然后将这些模块打包成一个或多个bundle。 知识点二:babel-loader babel-loader是webpack的一个加载器,它允许webpack使用Babel来转译JavaScript文件。使用babel-loader,可以将ES6+的代码转译为在大多数浏览器中可以运行的ES5代码,从而提高JavaScript代码的兼容性。 知识点三:排除node_modules 在进行前端开发时,node_modules通常包含大量的第三方依赖包。有些情况下,这些依赖包已经使用ES5或其他方式编写,无需通过babel进行转译。因此,在使用babel-loader时,可以通过配置规则来排除node_modules目录中的模块,以加快构建速度和减少构建过程中的错误。 知识点四:正则表达式 正则表达式是一种强大的文本处理工具,用于匹配、查找和替换文本中的字符组合。在webpack的配置中,正则表达式用于匹配文件路径和模式,从而在打包过程中应用特定的规则。 知识点五:babel-loader-exclude-node-modules-except用法 通过`require`引入`babel-loader-exclude-node-modules-except`模块后,可以创建一个排除特定node_modules模块的正则表达式数组。这个工具接受一个数组参数,包含了需要排除的模块名称,其余的node_modules模块将被包含在转译过程中。通过这种方式,开发者可以选择性地转译第三方库,而不是全部转译。 知识点六:webpack配置 webpack的配置文件`webpack.config.js`允许开发者定义如何打包应用程序。在该配置文件中,通过`module.rules`可以设置加载规则,其中包括转译JavaScript文件的规则。通过设置`test`来匹配所有JavaScript文件,`exclude`用于排除不需要转译的文件,而`include`用于指定需要包含的文件。 知识点七:JavaScript模块系统 在JavaScript中,ES6模块系统引入了`import`和`export`语句来导入和导出模块。webpack可以理解这些ES6模块语法,并将其转换为浏览器能够理解的代码。在webpack中,`babel-loader`可以处理这些ES6模块,并允许开发者在浏览器不支持ES6模块的环境中使用它们。 通过这些知识点,开发者可以更有效地使用`babel-loader-exclude-node-modules-except`工具来优化webpack的构建过程,确保只有必要的代码被转译,从而提高项目的性能和构建速度。

These dependencies were not found: * @antv/g6-core/lib/item/item in ./node_modules/.store/cache-loader@4.1.0/node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/.store/babel-loader@8.3.0/node_modules/babel-loader/lib!./node_modules/.store/cache-loader@4.1.0/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/.store/vue-loader@15.10.1/node_modules/vue-loader/lib??vue-loader-options!./src/views/common/SceneG6.vue?vue&type=script&lang=js& * @antv/util in ./node_modules/.store/cache-loader@4.1.0/node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/.store/babel-loader@8.3.0/node_modules/babel-loader/lib!./node_modules/.store/cache-loader@4.1.0/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/.store/vue-loader@15.10.1/node_modules/vue-loader/lib??vue-loader-options!./src/views/Attribute.vue?vue&type=script&lang=js& * graphlib/lib/json in ./node_modules/.store/cache-loader@4.1.0/node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/.store/babel-loader@8.3.0/node_modules/babel-loader/lib!./node_modules/.store/cache-loader@4.1.0/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/.store/vue-loader@15.10.1/node_modules/vue-loader/lib??vue-loader-options!./src/views/common/SceneRule.vue?vue&type=script&lang=js& * lodash/_initCloneByTag in ./node_modules/.store/cache-loader@4.1.0/node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/.store/babel-loader@8.3.0/node_modules/babel-loader/lib!./node_modules/.store/cache-loader@4.1.0/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/.store/vue-loader@15.10.1/node_modules/vue-loader/lib??vue-loader-options!./src/views/Object.vue?vue&type=script&lang=js&

2023-06-03 上传

These dependencies were not found: * @/api/second/category/industry in ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/trivoltine/std_base/editStructure.vue?vue&type=script&lang=js& * @/api/second/structure/crud in ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/trivoltine/std_base/seeStructure.vue?vue&type=script&lang=js& * @/components/tinymce-editor/tinymce-editor.vue in ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/trivoltine/std_base/editStructure.vue?vue&type=script&lang=js& * vue-pdf in ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/trivoltine/std_base/editStructure.vue?vue&type=script&lang=js& * vue-quill-editor in ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/trivoltine/std_base/editStructure.vue?vue&type=script&lang=js& To install them, you can run: npm install --save @/api/second/category/industry @/api/second/structure/crud @/components/tinymce-editor/tinymce-editor.vue vue-pdf vue-quill-editor

2023-05-23 上传

npm ERR! code ERESOLVE npm ERR! ERESOLVE could not resolve npm ERR! npm ERR! While resolving: css-loader@2.1.1 npm ERR! Found: webpack@2.7.0 npm ERR! node_modules/webpack npm ERR! peer webpack@"2 || 3 || 4" from babel-loader@7.1.5 npm ERR! node_modules/babel-loader npm ERR! babel-loader@"^7.1.2" from vue-photo-preview@1.1.3 npm ERR! node_modules/vue-photo-preview npm ERR! vue-photo-preview@"^1.1.3" from the root project npm ERR! dev babel-loader@"^7.1.5" from the root project npm ERR! peer webpack@"^2.0.0 || ^3.0.0 || ^4.0.0" from file-loader@1.1.11 npm ERR! node_modules/file-loader npm ERR! file-loader@"^1.1.4" from vue-photo-preview@1.1.3 npm ERR! node_modules/vue-photo-preview npm ERR! vue-photo-preview@"^1.1.3" from the root project npm ERR! 5 more (less-loader, uglifyjs-webpack-plugin, ...) npm ERR! npm ERR! Could not resolve dependency: npm ERR! peer webpack@"^4.0.0" from css-loader@2.1.1 npm ERR! node_modules/css-loader npm ERR! peer css-loader@"*" from vue-loader@15.10.1 npm ERR! node_modules/vue-loader npm ERR! dev vue-loader@"^15.9.5" from the root project npm ERR! dev css-loader@"^2.1.0" from the root project npm ERR! npm ERR! Conflicting peer dependency: webpack@4.46.0 npm ERR! node_modules/webpack npm ERR! peer webpack@"^4.0.0" from css-loader@2.1.1 npm ERR! node_modules/css-loader npm ERR! peer css-loader@"*" from vue-loader@15.10.1 npm ERR! node_modules/vue-loader npm ERR! dev vue-loader@"^15.9.5" from the root project npm ERR! dev css-loader@"^2.1.0" from the root project npm ERR! npm ERR! Fix the upstream dependency conflict, or retry npm ERR! this command with --force or --legacy-peer-deps npm ERR! to accept an incorrect (and potentially broken) dependency resolution.

2023-03-24 上传