umi.js的document.ejs中如何引用配置变量

本文介绍了如何在umi.js项目中的document.ejs模板中引用.umi.js配置变量。document.ejs作为umi项目的入口,可以设置基本配置。在需要引入外部资源或设置公共DOM元素时,可以通过`<%=` 和 `umi` 对象来获取.umi.js配置文件中的变量,从而实现动态配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如何在document.ejs模板中引用.umi.js配置变量

document.ejs模板可以为umi.js项目配置最为基本的配置之一,可以理解为index.html的入口。
我们知道原生的react组件,都是需要挂载到html中的指定dom元素中的。umi.js是基于react的,尽管基于umi.js来开发react项目,使代码的逻辑更清晰,模块化更透彻,可维护性更好,但是,本质还是react。

所以,我们还是能找到,且必须能找到一个react根模块显示的挂载到html的dom元素中。那么,我们可以在这个document.ejs只找到这个挂载点,如下:

  <body>
    <div id="root"></div>
  </body>

上面的有唯一的一个<div id="root">,这就是整个react的项目的根组件挂载点

进入正题

react本质还是js,任何前端项目本质还是依赖html,js,css,这些几乎没变过,所以,有时我们需要想以往的项目一样,引入一些静态资源(js、css等),或者,设置一些<head>中的共用dom元素如<meta>,那么就可以在这个doument.ejs模板中设置。

然而,有时我们希望,从别的配置文件中,引入某些变量到doument.ejs,以便开发或部署,那么在umi.js项目中如何实现呢?

在这里,umi.js提供的解决方案是,看代码如下:

<!-- document.ejs -->
<script src="<%= context.config.publicPath %>/lib/my.js"></script>

那么context.config又是从哪里来的呢,噹噹噹…,当然就是从 .umi.js来的,我们看一下:

// .umi.js
export default {
  publicPath: '/myPublic',
  base: basePath,
  hash: true,
  ignoreMomentLocale: true,
  targets: { ie: 9 },
  treeShaking: true,
  ...
}

看到了吧,在这个.umi.js的配置文件的所有变量,在document.ejs中都可以通过context.config来提取
提取的格式,只需要加上<%=context.config %> 就可以了

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值