首页 > 其他分享 >使用 Webpack 的 require.context 来获取组件

使用 Webpack 的 require.context 来获取组件

时间:2023-10-09 16:34:27浏览次数:38  
标签:代码 Webpack 构建 context 组件 require

代码

const requireComponent = require.context(
        '@/views', // 组件文件夹的相对路径
        true, // 是否查找子文件夹
        /\.vue$/ // 匹配组件文件的正则表达式
      )

输出

console.log(requireComponent.keys())

原理

require.context 在生产环境中也能获取路径信息,因为它的工作方式与运行时环境无关,而是在构建时由Webpack或其他类似的构建工具处理的。以下是解释为什么在生产环境中也可以获取路径的一些重要点:

构建时处理:require.context 是Webpack提供的功能,它是在项目构建时执行的,而不是在浏览器或运行时环境中执行的。Webpack会分析您的代码,找到所有匹配模块的文件路径,然后将它们打包到最终的生产代码中。

静态分析:Webpack在构建时进行静态分析,这意味着它不需要在运行时访问文件系统或执行动态操作来获取模块信息。它在构建期间已经确定了需要导入的模块。

生产代码:最终生成的生产代码是一个捆绑在一起的JavaScript文件,其中包含了所有依赖模块的内容。这个文件中已经包含了require.context 收集的路径信息,因此不需要在生产环境中再次访问文件系统。

标签:代码,Webpack,构建,context,组件,require
From: https://www.cnblogs.com/lwc1st/p/17752056.html

相关文章

  • entity-framework 'scaffold-dbcontext' 未被识别为 cmdlet、函数、脚本文件或可操
    //出现此错scaffold-dbcontext:Theterm'scaffold-dbcontext'isnotrecognizedasthenameofacmdlet,function,scriptfile,oroperableprogram.Checkthespellingofthename,orifapathwasincluded,verifythatthepathiscorrectandtry......
  • webpack配置删除console
    1.删除所有的console.logvue.config.js:module.exports=defineConfig({configureWebpack:(config)=>{//删除consoleconfig.optimization.minimizer[0].options.minimizer.options.compress=Object.assign(config.optimization.minimizer[0]......
  • MDC (Mapped Diagnostic Context)
    MDC是org.slf4j包下的一个类,它的全称是MappedDiagnosticContext,我们可以认为它是一个线程安全的存放诊断日志的容器。MDC的底层是用了ThreadLocal来保存数据的。我们可以用它传递参数。例如现在有这样一种场景:我们使用RestTemplate调用远程接口时,有时需要在header中传递信息,......
  • Microsoft Visual C++ 14.0 or greater is required.
    MicrosoftVisualC++14.0orgreaterisrequired.表示缺少VisualStudio2015及以上版本可以通过以下途径解决。最好是第二、三种途径。 一、直接下载对应版本的.whl文件,然后运行pipinstallxxx.whl 二、按照提示去官网下载VisualStudio2015及以上版本都可以,必须安装C++......
  • ${pageContext.request.contextPath}不能识别的问题
    ${pageContext.request.contextPath}是通过 get方法去取的,先pageContext.getRequest()得到HttpServletRequest对象,再调用 HttpServletRequest的getContextPath方法作用是取出部署的应用程序名,这样不管如何部署,所用路径都是正确的。 El表达式的写法:${pageContext.request.......
  • Spring ApplicationContext 是如何被注入的
     //ERRORNoqualifyingbeanoftype'org.springframework.context.ApplicationContext'availableapplicationContext.getBean(ApplicationContext.class);//SUCCESS@ComponentpublicclassSimpleBean3{@AutowiredprivateApplicationContexta......
  • This kernel requires an x86-64 CPU, but only detected an i686CPU. Unable to boot
    原文链接:https://www.longkui.site/program/other/i686/4759/ 0.背景买了一台小电脑,STARTC-8080型号,想给他装个Linux系统。给他装Ubuntu18的时候,开始报错:Thiskernelrequiresanx86-64CPU,butonlydetectedani686CPU.Unabletoboot–pleaseuseakernelapp......
  • 使用RequireJS并实现一个自己的模块加载器 (一)
    使用RequireJS并实现一个自己的模块加载器(一) RequireJS&SeaJS在 模块化开发 开发以前,都是直接在页面上引入 script 标签来引用脚本的,当项目变得比较复杂,就会带来很多问题。JS项目中的依赖只有通过引入JS的顺序来确定,项目会变得复杂难以维护。复杂的脚本会暴露很......
  • Springboot中的context-path作用
    首先context-path用于构成url,我们在配置文件的时候server:servlet:context-path:/test之后在本地访问端口8080时(此处拿knife4j举列)本来要访问的是:localhost:8080/doc.html但是现在由于加了context-path,该路径便变为了:localhost:8080/tset/doc.html......
  • GoLang context包
    初始化一个context如果确定是开头则用Background,如果不确定则用ToDocontext包核心API有四个1.context.WithValue设置键值对,并且返回一个新的context实例2.context.WithCancel3.context.WithDeadline4.context.WithTimeout三者都返回一个可取消的context实例和取消函数,WithTi......