离线导入Preact Hooks模块报错:裸标识符未映射解决方案
解决Preact Hooks无构建工具下的裸标识符问题
浏览器原生ES模块不支持裸模块标识符(比如import ... from "preact"),必须使用相对/绝对路径。你可以通过浏览器原生Import Maps来解决这个问题,无需修改hooks.mjs的代码,也不需要依赖CDN。
具体步骤:
- 在HTML页面中,引入你的主脚本之前,添加一个
type="importmap"的脚本标签,定义裸模块到本地文件的映射:
<script type="importmap"> { "imports": { "preact": "./preact.mjs" } } </script>
- 确保你的主脚本使用
type="module"引入,比如:
<script type="module" src="./your-main-script.mjs"></script>
这样浏览器加载hooks.mjs时,会自动将裸标识符"preact"映射到你本地的preact.mjs文件路径,完美适配无构建、无网络的运行环境。
注意:Import Maps需要现代浏览器支持(Chrome 89+、Firefox 108+、Edge 89+等),如果需要兼容旧浏览器,可能需要额外的polyfill,但无网络环境下建议优先使用支持该特性的浏览器。
内容的提问来源于stack exchange,提问作者Setsuna Cyan
相关产品推荐
相关产品推荐

