Rolldown
基于 Rust 的高性能 JavaScript/TypeScript 打包器,提供 Rollup 兼容 API,作为 Vite 8+ 的默认打包引擎。
Rolldown 是 VoidZero 用 Rust 开发的 JS/TS 打包器,完全兼容 Rollup 插件 API,构建速度比 Rollup 快 10-30 倍,已成为 Vite 8+ 的默认打包引擎。
Rolldown
基于 Rust 的高性能 JavaScript/TypeScript 打包器,提供 Rollup 兼容 API,作为 Vite 8+ 的默认打包引擎。
技术简介说明
Rolldown 是由 VoidZero 公司开发的 JavaScript/TypeScript 打包器,使用 Rust 编写。它的核心目标是统一 Vite 原有的双打包器架构——用单一工具同时替代 esbuild(负责转换)和 Rollup(负责打包),消除两套转换管线、两套插件系统以及日益膨胀的胶水代码。
Rolldown 的设计哲学是"Rollup 的 API + esbuild 的速度"。它完全兼容 Rollup 的插件接口和配置选项,同时借助 Rust 和 Oxc(同样由 VoidZero 开发的 JavaScript 解析器/压缩器)实现比 Rollup 快 10-30 倍 的构建速度。这意味着现有 Vite/Rollup 生态的插件几乎无需修改即可迁移到 Rolldown。
2025 年 5 月 Rolldown-Vite 技术预览版发布,2025 年 12 月 Vite 8 Beta 将 Rolldown 集成为默认打包器,2026 年 3 月 Vite 8 正式版发布,2026 年 5 月 Rolldown 1.0 稳定版正式发布。截至目前,Rolldown 的周下载量已超过 2000 万次,被 Framer、Ramp、Mercedes-Benz.io、Beehiiv、PLAID 等公司在生产环境中使用。
基本信息
- 官网:https://rolldown.rs/
- GitHub:https://github.com/rolldown/rolldown
- License:MIT
- 最新版本:v1.1.4(2026 年 7 月)
- 主要维护者/公司:VoidZero Inc.(Vite、Vitest、Oxc 的创建者,已加入 Cloudflare)
- 代码语言构成:Rust 69.3%、TypeScript 20.1%、JavaScript 10.3%
- GitHub Stars:13.8k+
- 贡献者:约 200 人
快速上手
安装
使用任意包管理器将 Rolldown 安装为开发依赖:
# npm
npm install -D rolldown
# pnpm(推荐)
pnpm add -D rolldown
# yarn
yarn add -D rolldown
# bun
bun add -D rolldown安装完成后验证:
npx rolldown --version基础配置
在项目根目录创建 rolldown.config.js(ESM 格式):
// rolldown.config.js
import { defineConfig } from 'rolldown'
export default defineConfig({
input: 'src/index.js',
output: {
file: 'dist/bundle.js',
format: 'esm',
},
})也可以使用 defineConfig 导出数组来并行执行多个构建:
export default defineConfig([
{
input: 'src/index.js',
output: { file: 'dist/esm.js', format: 'esm', cleanDir: true },
},
{
input: 'src/index.js',
output: { file: 'dist/cjs.js', format: 'cjs' },
},
])最小示例
src/main.js
import { greet } from './utils.js'
console.log(greet('Rolldown'))src/utils.js
export function greet(name) {
return `Hello, ${name}!`
}CLI 构建:
npx rolldown src/main.js --file dist/bundle.js在 package.json 中配置脚本:
{
"scripts": {
"build": "rolldown -c rolldown.config.js"
}
}编程式 API:
import { build, rolldown } from 'rolldown'
// 方式一:build() 一步完成(写入磁盘)
await build({
input: 'src/index.js',
output: {
file: 'dist/bundle.js',
format: 'esm',
},
})
// 方式二:rolldown() 分步操作
const bundle = await rolldown({ input: 'src/index.js' })
// generate() 生成内存中的产物
const { output } = await bundle.generate({ format: 'esm' })
// write() 写入磁盘
await bundle.write({ file: 'dist/bundle.js', format: 'esm' })
// 方式三:watch 模式
import { watch } from 'rolldown'
const watcher = await watch({
input: 'src/index.js',
output: { file: 'dist/bundle.js', format: 'esm' },
})
// 关闭时返回 Promise
await watcher.close()核心概念与架构
架构设计
Rolldown 采用 Rust 核心 + Node.js 绑定 的分层架构:
┌─────────────────────────────────────┐
│ JavaScript API │
│ (defineConfig / build / watch) │
├─────────────────────────────────────┤
│ napi-rs 绑定层 │
│ (Rust ↔ Node.js 桥接) │
├─────────────────────────────────────┤
│ Rust 核心引擎 │
│ ┌─────────┬──────────┬──────────┐ │
│ │ Oxc │ 解析器 │ 压缩器 │ │
│ │ Parser │ Resolver │ Minifier │ │
│ ├─────────┼──────────┼──────────┤ │
│ │ 模块图构建 / 代码分割 / DCE │ │
│ └─────────────────────────────────┘ │
└─────────────────────────────────────┘
- Oxc:负责 JavaScript/TypeScript 的解析、转换和压缩,是一个用 Rust 编写的高性能 JavaScript 工具链
- napi-rs:用于创建 Node.js 原生插件,将 Rust 核心暴露给 JavaScript 层
- 平台特定包:为不同操作系统/架构提供预编译的原生二进制(如
@rolldown/darwin-arm64、@rolldown/linux-x64-gnu),避免用户本地编译
工作原理
- 解析阶段:Oxc 解析器将源代码解析为 AST
- 模块解析:构建完整的模块依赖图
- 转换阶段:执行 TypeScript 降级、JSX 转换等
- Tree Shaking:基于
@__PURE__、@__NO_SIDE_EFFECTS__、sideEffects等进行激进死代码消除 - 代码分割:支持 webpack 风格的 chunk 规则进行细粒度分割
- 输出生成:通过插件钩子生成最终产物,支持 ESM、CJS、IIFE 等多种格式
插件系统
Rolldown 完全兼容 Rollup 插件 API,插件分为两个阶段的钩子:
构建阶段钩子(Build Hooks):
options→buildStart→resolveId→load→transform→moduleParsed→resolveDynamicImport→buildEnd→watchChange→closeWatcher→closeBundle
输出生成钩子(Output Hooks):
renderStart→beforeAddons→banner/footer/intro/outro→renderChunk→afterAddons→augmentChunkHash→generateBundle→writeBundle→renderError→closeBundle
Hook Filters(钩子过滤器) 是 Rolldown 的重要优化——当插件声明了 id、code 或 moduleType 过滤器时,如果不匹配,插件调用将跳过 Rust ↔ JavaScript 的跨语言通信,显著减少性能开销。
// 虚拟模块插件示例
export function myPlugin() {
const virtualId = 'virtual:example'
const resolvedId = '\0' + virtualId
return {
name: 'my-virtual-plugin',
resolveId(id) {
if (id === virtualId) return resolvedId
},
load(id) {
if (id === resolvedId) return `export default 'Hello from virtual module!'`
},
}
}核心特性
- Rollup 兼容 API:完全兼容 Rollup 的插件接口和配置选项,现有 Vite/Rollup 插件几乎无需修改即可迁移
- 10-30x 性能提升:相比 Rollup,构建速度提升 10-30 倍,性能与 esbuild 相当,项目越大优势越明显
- 激进死代码消除(DCE):支持
@__PURE__、@__NO_SIDE_EFFECTS__、sideEffects字段,精确消除未使用代码 - 智能内联:自动内联常量和 TypeScript
const enum,减少运行时开销 - 细粒度代码分割:支持 webpack 风格的
advancedChunks规则,Framer 借此实现了 67% 的 chunk 数量缩减 - 内置 Rust 插件:
replacePlugin、esmExternalRequirePlugin等原生插件替代常见 Rollup 生态依赖,无需 JavaScript 开销 - Hook Filters 优化:通过声明式过滤器将不匹配的插件调用留在 Rust 侧,跳过 JS 桥接开销
- 多格式输出:支持 ESM、CJS、IIFE 等输出格式,可在一次构建中生成多种格式
- Watch 模式(实验性):基于新的原生文件系统监视器,更可靠、更快,支持 WASM
- DCE-only 压缩:仅剥离死代码而不混淆标识符,适合需要可读输出的场景
- 原生 MagicString(实验性):JavaScript 版本的 Rust 替代品,提供更好的转换性能和更少依赖
- tsconfig 支持:自动读取
tsconfig.json配置
生态图
生态系统概览
Rolldown 是 VoidZero 统一 JavaScript 工具链愿景的核心组成部分:
VoidZero 工具链生态
┌──────────────────────────────────────────┐
│ │
│ ┌─────────┐ ┌─────────┐ ┌───────┐ │
│ │ Vite │ │ Vitest │ │ Vite+ │ │
│ │ 构建工具 │ │ 测试框架 │ │统一平台│ │
│ └────┬────┘ └─────────┘ └───────┘ │
│ │ │
│ ┌────▼────────────────────────────┐ │
│ │ Rolldown │ │
│ │ JavaScript 打包器 │ │
│ └────┬────────────┬──────────────┘ │
│ │ │ │
│ ┌────▼────┐ ┌────▼────┐ │
│ │ Oxc │ │ Lightning│ │
│ │解析/压缩 │ │ CSS │ │
│ └─────────┘ └─────────┘ │
└──────────────────────────────────────────┘
关键上层工具
| 工具 | 说明 | 链接 |
|---|---|---|
| Vite 8+ | Rolldown 作为默认打包器,替代 Rollup + esbuild | https://vite.dev/guide/rolldown |
| tsdown | 基于 Rolldown 的 TypeScript 库打包器,零配置生成 .d.ts | https://tsdown.dev/ |
| Rolldown-Vite | Vite 的 Rolldown 集成技术预览(已合并到 Vite 8) | https://github.com/vitejs/rolldown-vite |
插件兼容性
Rolldown 兼容三大插件生态:
- Rollup 插件:绝大多数 Rollup 插件可直接使用
- Rolldown 内置插件:
replacePlugin、esmExternalRequirePlugin等 Rust 原生插件 - Unplugin 生态:通过 Unplugin 可跨 Webpack/Vite/Rolldown/esbuild 等平台复用插件
- 部分 Vite 插件:Vite 特有插件在 Rolldown 上也基本可用
社区生态
- GitHub:https://github.com/rolldown/rolldown (13.8k+ stars)
- npm 周下载量:2000 万+
- 贡献者:约 200 人
- 已知生产用户:Framer、Ramp、Mercedes-Benz.io、Beehiiv、PLAID、Shopify、OpenAI、Cloudflare
适用场景
- Vite 项目打包:Rolldown 已作为 Vite 8+ 的默认打包器,使用 Vite 的项目无需额外配置即可享受性能提升
- 库/包开发:作为 Rollup 的直接替代品,适用于构建 npm 包、组件库、SDK 等。tsdown 进一步简化了 TypeScript 库的打包流程
- 大型应用构建:项目规模越大,Rolldown 相比 Rollup 的性能优势越明显(10-30x),适合 monorepo 和大型 SPA
- 需要快速迭代的开发环境:Watch 模式下的快速增量构建,适合频繁修改的开发场景
- 多格式发布:需要同时输出 ESM、CJS、IIFE 等多种格式的库开发者
- 从 Rollup 迁移:API 高度兼容,迁移成本低,可作为 Rollup 的无痛升级路径
- Monorepo 构建:配合 Turborepo 等工具使用,Rust 级别的构建速度在 Monorepo 中优势显著
开发与工程化
开发流程
项目结构推荐:
my-project/
├── src/
│ ├── index.js # 入口文件
│ └── ...
├── dist/ # 构建产物
├── rolldown.config.js # Rolldown 配置
├── tsconfig.json # TypeScript 配置(可选)
└── package.json
构建部署
package.json 脚本配置:
{
"scripts": {
"build": "rolldown -c rolldown.config.js",
"build:watch": "rolldown -c rolldown.config.js --watch",
"dev": "rolldown -c rolldown.config.js --watch"
}
}多环境构建:
import { defineConfig } from 'rolldown'
export default defineConfig([
// ESM 输出
{
input: 'src/index.js',
output: {
file: 'dist/index.esm.js',
format: 'esm',
cleanDir: true,
},
},
// CJS 输出
{
input: 'src/index.js',
output: {
file: 'dist/index.cjs.js',
format: 'cjs',
},
},
])CI/CD 集成
Rolldown 是纯 CLI 工具,与任何 CI/CD 系统兼容:
# GitHub Actions 示例
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 22
- name: Install dependencies
run: pnpm install
- name: Build
run: pnpm build
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: dist
path: dist/注意事项:
- Rolldown 包含平台特定的原生二进制包,CI 环境需确保正确的 Node.js 版本(22+)
- Windows CI 建议使用 Dev Drive 或 WSL 以获得更好的文件系统性能
- 首次安装会根据平台自动下载对应的原生二进制
与 Vite 集成
在 vite.config.ts 中通过 build.rolldownOptions 配置:
import { defineConfig } from 'vite'
export default defineConfig({
build: {
rolldownOptions: {
// Rolldown 特定配置
output: {
advancedChunks: {
// webpack 风格的 chunk 规则
},
},
},
},
})性能与安全
性能特点
| 指标 | 数据 |
|---|---|
| 相比 Rollup | 10-30x 更快 |
| 相比 esbuild | 性能相当 |
| Ramp(真实项目) | 构建时间减少 57% |
| Mercedes-Benz.io(真实项目) | 构建时间减少 38% |
| Beehiiv(真实项目) | 构建时间减少 64% |
| Framer | chunk 数量减少 67% |
性能优化手段:
- Rust 核心避免 JavaScript 运行时开销
- Oxc 解析器/压缩器的高效实现
- Hook Filters 减少 Rust ↔ JavaScript 跨语言通信
- 内置 Rust 插件替代 JS 插件,支持并发处理
- 激进 DCE 减少产物体积
性能瓶颈与优化
Windows 文件系统:Windows 文件系统显著慢于 macOS/Linux,安全软件会加剧问题。
- 解决方案:使用 Dev Drive 或 WSL(约 10 倍提升)
第三方插件开销:每个 JS 插件调用都涉及 Rust → JS 的跨语言通信。
- 解决方案:使用
withFilter限制钩子执行范围;优先使用内置 Rust 插件
eval 使用:eval 会合并作用域,阻碍压缩和变量重命名。
- 解决方案:使用间接 eval
(0, eval)('x')或new Function('x')
安全注意事项
- eval 风险:
eval不仅影响性能,还存在安全隐患。打包器合并作用域后,私有变量可能被暴露 - Source Map 准确性:当插件修改代码但未提供映射数据时,可能出现 Source Map 不正确的警告
- 执行上下文:Rolldown 不维护导出方法的标准模块命名空间上下文,不应依赖执行上下文
- 初始化顺序:顶层类被重写为变量赋值,可能在循环依赖中被观察为
undefined而非触发引用错误
技术对比
Rolldown vs Rollup vs Rspack vs esbuild
| 维度 | Rolldown | Rollup | Rspack | esbuild |
|---|---|---|---|---|
| 语言 | Rust | JavaScript | Rust | Go |
| 定位 | Rollup 替代品 | 库打包器 | Webpack 替代品 | 通用打包器 |
| 速度 | ⚡ 极快(10-30x Rollup) | 🐢 较慢 | ⚡ 极快 | ⚡ 极快 |
| API 兼容 | Rollup 兼容 | 原生 | Webpack 兼容 | 独立 API |
| 插件生态 | Rollup 插件兼容 | 成熟 | Webpack 插件兼容 | 有限 |
| 代码分割 | 优秀(webpack 风格规则) | 基础 | 优秀(webpack 风格) | 较弱 |
| Vite 集成 | ✅ 默认打包器(Vite 8+) | ❌ 已被替代 | ❌ 无关 | ❌ 已被替代 |
| DCE | 激进(@PURE 等) | 基础 | 基础 | 基础 |
| 1.0 稳定 | ✅ 2026.05 | ✅ 多年前 | ✅ 2024 | ✅ 多年前 |
| 适用场景 | Vite 项目、库打包 | 库打包 | 应用打包(Webpack 迁移) | 快速原型 |
核心差异说明
- Rolldown vs Rollup:直接替代关系。Rolldown 提供相同的 API 和插件接口,但速度快 10-30 倍。Rollup 生态的插件可以几乎无损迁移
- Rolldown vs Rspack:不直接竞争。Rolldown 替代 Rollup(库/Vite 场景),Rspack 替代 Webpack(应用/Webpack 场景)。社区共识:"Rspack 之于 Webpack,正如 Rolldown 之于 Rollup"
- Rolldown vs esbuild:Rolldown 在速度上与 esbuild 相当,但在代码分割、插件生态、Rollup 兼容性方面更优。Vite 此前使用 esbuild 做转换 + Rollup 做打包,Rolldown 统一了这两者
- 为什么不用 esbuild:Rolldown 创建的原因之一是 esbuild 的代码分割能力较弱,且 Rollup 速度太慢。Rolldown 同时解决了这两个问题
最佳实践
生产环境建议
- 优先使用 Vite 8+:Rolldown 已作为 Vite 8 的默认打包器,通过 Vite 使用可以获得完整的开发体验(HMR、Dev Server 等)
- 启用 Hook Filters:为插件声明
id、code、moduleType过滤器,减少不必要的 Rust ↔ JS 通信 - 使用内置 Rust 插件:用
replacePlugin等内置插件替代@rollup/plugin-replace等 JS 插件 - 配置
advancedChunks:替代已废弃的manualChunks,使用 webpack 风格的细粒度 chunk 规则 - 利用
sideEffects:在package.json中正确声明sideEffects字段,帮助 DCE 更精确地工作 - 使用
tsconfig选项:自动读取 TypeScript 配置,避免手动重复配置
常见陷阱
manualChunks已废弃:迁移到advancedChunkstransformWithEsbuild不可用:Vite 8 不再内置 esbuild,需手动安装或使用transformWithOxc- 非 JS 模块需声明类型:在
load或transform钩子中将非 JavaScript 资产转换为 JS 时,必须返回moduleType: 'js' - 不支持的 Rollup 选项:
shouldTransformCachedModule、resolveImportMeta、resolveFileUrl、renderDynamicImport目前不支持 - Windows 性能问题:在 Windows 上构建可能较慢,建议使用 Dev Drive 或 WSL
- 插件返回 Source Map:插件修改代码后必须提供 Source Map,否则会出现警告
推荐模式
// 推荐的库打包配置
import { defineConfig } from 'rolldown'
export default defineConfig({
input: 'src/index.ts',
output: [
{ file: 'dist/index.esm.js', format: 'esm', cleanDir: true },
{ file: 'dist/index.cjs.js', format: 'cjs' },
],
// 利用 sideEffects 进行精确 DCE
treeshake: {
moduleSideEffects: false,
},
// 声明平台
platform: 'node',
// 自动读取 tsconfig
tsconfig: 'tsconfig.json',
})技术局限与边界
已知限制
- 部分 Rollup 选项不支持:
shouldTransformCachedModule、resolveImportMeta、resolveFileUrl、renderDynamicImport等 Rollup 选项目前不可用 - Windows 性能:Windows 文件系统显著慢于 macOS/Linux,需要额外优化(Dev Drive / WSL)
- eval 处理:
eval会导致作用域合并,阻碍压缩,存在安全和正确性风险 - 执行上下文限制:不维护导出方法的标准模块命名空间上下文,可能影响 Tree Shaking
- 初始化顺序偏差:顶层类被重写为变量赋值,可能在循环依赖中表现为
undefined - 插件生态仍在完善:虽然兼容 Rollup 插件,但部分高级插件可能需要适配
- 配置警告:遇到无法识别的配置键时会发出警告,需确保配置正确
不适用场景
- 需要 Webpack 生态的项目:如果项目深度依赖 Webpack 特有功能(如 Module Federation、大量 Webpack loader),应使用 Rspack 而非 Rolldown
- 遗留 Webpack 项目迁移:从 Webpack 迁移到 Rolldown 的迁移成本远高于从 Rollup 迁移
- 非 JavaScript 资源处理:Rolldown 聚焦于 JavaScript/TypeScript 打包,复杂的 CSS/图片/字体处理建议交给 Vite 或专门的工具
迁移注意事项
- 从 Rollup 迁移:成本最低,API 高度兼容,主要检查不支持的选项和插件
- 从 esbuild 迁移:需要调整配置格式,但功能基本对等
- 从 Webpack 迁移:建议先迁移到 Rspack,而非直接迁移到 Rolldown
- 升级到 Vite 8:Vite 8 自动集成 Rolldown,大部分情况下无需额外改动,但需注意
manualChunks→advancedChunks的迁移
学习资源
官方文档
- 官网:https://rolldown.rs/
- 入门指南:https://rolldown.rs/guide/getting-started
- 配置选项参考:https://rolldown.rs/reference
- CLI 文档:https://rolldown.rs/apis/cli
- 插件 API:https://rolldown.rs/apis/plugin-api
- 显著特性:https://rolldown.rs/guide/notable-features
- 故障排查:https://rolldown.rs/guide/troubleshooting
- Vite 集成指南:https://vite.dev/guide/rolldown
- Vite 中文集成指南:https://cn.vite.dev/guide/rolldown
- Rolldown 中文网:https://rolldown.nodejs.cn/
教程与文章
- VoidZero 官方博客:https://voidzero.dev/posts
- InfoQ:VoidZero's Rolldown Library: Rollup Compatible API with the Speed
- Dev.to:Rust Is Eating the JavaScript Toolchain
- Vite 8 + Rolldown 指南:https://usama.codes/blog/vite-8-beta-rolldown-rust-bundler-guide
- Framer 案例研究:https://voidzero.dev/posts/case-study-framer-rolldown
- PLAID 案例研究:https://voidzero.dev/posts/case-study-plaid-rolldown
社区资源
- GitHub:https://github.com/rolldown/rolldown
- GitHub Discussions:https://github.com/rolldown/rolldown/discussions
- GitHub Issues:https://github.com/rolldown/rolldown/issues
- X / Twitter:https://x.com/rolldown_rs
- VoidZero X / Twitter:https://x.com/voidzerodev
- Hacker News 讨论:https://news.ycombinator.com/item?id=39640643
视频资源
- Oxc, Rolldown, Vitest, Vite — The Future of The JavaScript Toolchain(2026 年 4 月)
- Rolldown and VoidZero's Vision for the Future(2025 年 9 月)
- Vite Just Got 16x FASTER (Thanks to Rust)(2025 年 6 月)
- Vite + Rolldown: Embarrassingly fast build times!
2026 年现状
版本状态
| 里程碑 | 时间 | 说明 |
|---|---|---|
| 首次公开版本 0.10.1 | 2024 年 4 月 | 初始发布 |
| 1.0.0-beta.1 | 2024 年 12 月 | 确定 1.0 范围 |
| rolldown-vite 技术预览 | 2025 年 5 月 | Vite 集成预览 |
| Vite 8 Beta | 2025 年 12 月 | Rolldown 作为默认打包器 |
| 1.0 RC | 2026 年 1 月 | API 稳定性确认 |
| Vite 8 正式版 | 2026 年 3 月 | Rolldown 集成到稳定版 Vite |
| 1.0 稳定版 | 2026 年 5 月 | 正式稳定,API 锁定 |
| 1.1.4(当前最新) | 2026 年 7 月 | 持续迭代修复 |
社区活跃度
- GitHub Stars:13.8k+
- npm 周下载量:2000 万+
- 贡献者:约 200 人
- VoidZero 已加入 Cloudflare,获得更大的企业支持和资源
- 被 Shopify、OpenAI、Mercedes-Benz、Cloudflare 等公司在生产环境中使用
发展趋势与未来路线图
已发布的实验性特性:
- Watch 模式(基于新的原生文件系统监视器)
- 原生 MagicString(Rust 实现,替代 JS 版本)
- 惰性 Barrel 优化(lazy barrel optimization):分析导出,仅编译实际使用的 barrel 模块
即将推出的功能(2026 Q3+):
- Vite Full Bundle Mode:开发环境也使用打包模式(而非当前的逐文件 ESM),初步结果显示:
- 3x 更快的开发启动
- 40% 更快的全量重载
- 10x 更少的网络请求
- 稳定化惰性 Barrel 优化:减少构建时间和产物体积
- 2026 Q3 计划:已在 GitHub Issue #10042 公开,包含详细的目标和时间线
总结
Rolldown 在 2026 年已经从"实验性 Rust 打包器"成长为前端工具链的核心基础设施。随着 Vite 8 的发布和 1.0 稳定版的落地,Rolldown 已经成为 JavaScript 打包领域的标杆工具。VoidZero 加入 Cloudflare 后,其发展获得了更强的企业级支撑,未来在 Full Bundle Mode、性能优化和生态完善方面值得持续关注。