如何在ES6项目中以ES6模块方式导入Immutable.js?
在ES6项目中使用Immutable.js的正确姿势
嘿,我之前也碰到过类似的困惑!其实Immutable.js是支持ES6模块的,只是可能你没找对正确的打开方式,我来给你梳理下:
一、官方已经提供ES模块版本,无需额外找资源
其实从Immutable.js v4版本开始,npm包就已经内置了ES模块的构建文件,你不需要额外去别处找。只要正常安装:
npm install immutable
之后直接在ES6项目里这样导入就行:
import { Map, List } from 'immutable';
之所以你可能没察觉到,是因为它的package.json里已经配置了module字段,Webpack、Vite这类主流打包工具会自动识别并加载ES模块版本的文件,完全不需要你手动指定路径。
二、关于unpkg的?module参数无效的问题
如果是想用CDN方式引入ES模块版本,直接加?module确实可能不生效,这时候你可以直接指定ES模块的具体文件路径——找对应版本的immutable.esm.js文件,就能正常以ES模块方式引入了。
三、如果确实需要自行构建ES模块版本
要是你因为某些特殊原因(比如需要修改源码、锁定特定旧版本)必须自己构建,步骤很简单:
- 克隆Immutable.js的代码仓库到本地
- 进入仓库目录,安装所有依赖:
npm install - 执行构建命令:
构建完成后,在项目的npm run builddist目录下,immutable.esm.js就是你要的ES模块格式文件,直接复制到你的项目里就能用了。
小提示
如果你还在使用Immutable.js v3版本,那确实没有官方的ES模块构建,建议升级到v4+版本,不仅支持ES模块,还修复了不少bug,性能也有明显提升。
内容的提问来源于stack exchange,提问作者backspaces
相关产品推荐
相关产品推荐

