外部标准库
从 9.0 版本开始
你的 ReScript 项目依赖于作为开发依赖 的 rescript
包,其中包括我们的编译器、构建系统和运行时,例如 Belt
。然而,如果你以下面方式发布你的代码,你需要把它移动到 package.json
中的 dependency
中:
发布到 Docker 或其他低存储容量的部署设备
对于那些可能不会在自己的项目中安装
bs-platform
的纯 JS/TS 用户
这些情况下,bs-platform
需要的空间大小可能会带来麻烦,因为它不仅包括我们必要的运行时如 Belt
,还包括我们的编译器和构建系统。
为了解决这个问题,我们现在将运行时作为一个独立的包发布在 @rescript/std
,其版本与 bs-platform
一致。现在你可以把 bs-platform
作为一个开发依赖,而只将 @rescript/std
作为你的运行时依赖。
这是一个高级特性,请只在上述情况下使用它,如果你已经使用了具有死代码消除功能的 JS 打包器,你可能不需要这个特性。
配置
假设你想发布一个纯 JS 的 ReScript 9.0 库。像这样安装软件包:
SHnpm install bs-platform@9.0.0 --save-dev npm install @rescript/std@9.0.0 --save
然后把这个配置添加到 bsconfig.json
中:
JSON{
// ...
"external-stdlib" : "@rescript/std"
}
现在,编译后的 JS 代码将使用 external-stdlib
定义的路径导入。检查 JS 输出:
请确保 bs-platform
和 @rescript/std
的版本号在你的 package.json
中一致,以避免由于 stdlib 不匹配而遇到运行时问题。