v4.0.0-rc.11
Pre-release1、新增命令 umi lint,包含 eslint 和 stylelint 的规则和命令
lint 有两种用法,1)仅使用 umi 提供的规则配置,然后用项目里安装的 eslint 和 stylelint 执行,好处是对 IDE 友好 2)使用 umi 的 lint 命令。
用法 1 是在 .eslintrc 和 .stylelintrc里扩展 umi 的配置,
{
"extends": "umi/eslint"
}
{
"extends": "umi/stylelint"
}
用法 2 是直接执行 umi lint
命令,默认会用前面的配置,当然也可通过配置文件进行修改。
同时,Umi 提供的 eslint 规则我们有进行梳理,目前仅包含质量类的规则,因为我们觉得,风格类的规则应该交给 prettier 或其他同类工具。
注:由于尺寸问题,umi 没有包含 @umijs/lint(@umijs/max 内置了),使用时会提示你手动安装。
2、支持通过环境变量 SOCKET_SERVER 指定 socket 服务器,场景是 umi.js 和页面 url 不是同一个 server 时使用,比如
# 指向 socket 服务器到本地 umi dev 启动的服务器
$ SOCKET_SERVER=http://localhost:8000/ umi dev
# 打开开发服务器,这个页面里引用 http://localhost:8000/umi.js
$ open http://dev.prod.domain/
3、支持 node: 前缀的 import 语法和补丁
越来越多的库使用 node: 前缀的 import,比如 chalk、file-type 等 sindresorhus 提供的依赖。之前会报 UnhandledSchemaError 的错误,现在通过 NormalModuleReplacementPlugin 替换资源 request 进行了修复。
import { join } from 'node:path';
join;
4、修复项目里指定 16 及以下版本的 react 时构建报错的问题
原因是,babel-preset-react 中的配置项 runtime 和 importSource 是要搭配使用的,比如 runtime 设置为 classic 而 importSource 设置为 react 时会报错。
// 如果 react >= 17
runtime: 'automatic',
importSource: 'react',
// 如果 react < 17
runtime: 'classic',
importSource: undefined,