umi 使用 less 变量定义主题色

umi 提供了主题变量替换的能力,只需要在配置文件中按照键值对形式进行替换,即可一键替换主题色。

但是,直接使用 js 来书写变量并不方便,且没有提示,因此使用lesss书写,并转为 js 文件

1. 书写 less

@primary-color: #78eaff;

2. 转换 less 为 js

src/theme文件夹下创建 variables.ts 文件。用 less-vars-to-js 包将 less 变量转为 js对象

import lessToJs from 'less-vars-to-js';
import path from 'path';
import fs from 'fs';

const themeVariables = lessToJs(
  fs.readFileSync(path.join(__dirname, './theme.less'), 'utf8'),
);

export default themeVariables;

3. 引入变量

最后在 umi 的 config.ts 文件中引入

import theme from './src/theme/variables';

export default defineConfig({
  // ...
  theme,
  // ...
});
umi中,可以通过配置环境变量来控制应用程序在不同环境下的行为。以下是umi中配置环境变量的方法: 1. 在.umirc.js或config/config.js使用define定义环境变量 可以在.umirc.js或config/config.js文件中定义环境变量,例如: ```js export default { define: { 'process.env.API_URL': 'http://localhost:3000' }, } ``` 在上述代码中,我们定义了一个名为`process.env.API_URL`的环境变量,值为`http://localhost:3000`。在应用程序中,可以通过`process.env.API_URL`来访问该环境变量。 2. 在package.json中定义环境变量 在package.json文件中可以使用cross-env库来定义环境变量,例如: ```json { "scripts": { "dev": "cross-env NODE_ENV=development umi dev", "build": "cross-env NODE_ENV=production umi build" } } ``` 在上述代码中,我们定义了两个命令,一个是`dev`命令,一个是`build`命令。在这两个命令中,我们使用了cross-env库来定义环境变量`NODE_ENV`,值分别为`development`和`production`。 3. 在.env文件中定义环境变量umi中,还可以使用`.env`文件来定义环境变量。在`.env`文件中,可以定义多个环境变量,例如: ``` API_URL=http://localhost:3000 DEBUG=true ``` 在应用程序中,可以通过`process.env.API_URL`和`process.env.DEBUG`来访问这两个环境变量。 需要注意的是,`.env`文件中定义的环境变量只能在开发环境中使用,而在生产环境中,需要使用`define`或`cross-env`来定义环境变量
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值