Open i18n-now opened 1 month ago
我们已经看到你的反馈,如果是功能缺陷,可以提供一下重现该问题的方式;如果是新功能需求,我们会尽快加入讨论。同时我们非常期待你可以加入我们的贡献者行列,让项目可以长期可持续发展。
importmap 没有限制 url 格式的吧?
<script type="importmap">
{
"imports": {
"jquery": "https://registry.npmmirror.com/jquery/3.6.4/files/dist/jquery.min.js"
}
}
</script>
我一套代码,我想国内用这个,国外用jsdriver
我不止引用一个包,我会引用一系列文件
比如xxx/lang@0.2.5/zh.js 这样的语言文件有几百个会按需动态加载 我的前端组件会打包出去给第三方用,所以语言文件版本号我会写死在组件里,这样防止造成版本问题 。
而对方引用组件不需要写版本号,这样可以在线更新。
我一般会让这么写
后缀不统一就没法用了。
具体的代码: https://atomgit.com/i18n/plugin/blob/dev/lang/src/onI18n.js
import bintxt from "x/bintxt.js"
import langHook from "x/langHook.js"
import { fBin } from "x/f.js"
/*
vite 打包时会自动锁定语言文件的版本号
_I18N+"@latest/" -> _I18N+"@0.1.0/"
https://cdn.jsdelivr.net/npm/@i18n.site/i18n@0.1.1/zh.js
*/
export default langHook(async (lang) =>
bintxt(await fBin(_I18N + "@latest/" + lang + ".js")),
)[0]
我在serviceWorker中做了url拦截,重试多个cdn网站,目前只有 npmmirror格式和其他不一样,
url不一致,各种适配都会很麻烦(虽然hack一下也能搞)
https://atomgit.com/i18n/18x/blob/dev/serviceWorker/serviceWorker.js https://atomgit.com/i18n/18x/blob/dev/serviceWorker/Jsd.js
importmap 没有规定这种格式,目前没有看到有什么规范,先不做支持。
模块标识符映射键也可用于重新映射模块标识符中的路径前缀。请注意,在这种情况下,属性和映射路径都必须有一个尾随的正斜杠(/)。
然后我们可以这样导入 circle 模块。
是有这种格式。
比如我用importmap 定义了前缀, 方便直接引用npm包
然后国内用户我想切换到 npmmirror ,但是我发现路径格式后缀不一样,没法直接切换
https://registry.npmmirror.com/jquery/3.6.4/files/dist/jquery.min.js https://cdn.jsdelivr.net/npm/jquery@3.6.4/dist/jquery.min.js https://unpkg.com/jquery@3.6.4/dist/jquery.min.js
你可以看到 https://cdn.jsdelivr.net/npm 和 https://unpkg.com 路径格式一样,可以直接替换importmap,但是 npmmirror 不行
https://registry.npmmirror.com/@mdi/js/latest/files/build.js 这种带@mdi组织的格式也需要和 unpkg一致,才比较方便
@ 同样支持
@latest
https://cdn.jsdelivr.net/npm/jquery@latest/dist/jquery.min.js