请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

毛毛
金牌服务用户   /  发表于:2025-11-4 09:00  /   查看:65  /  回复:2
1金币
本帖最后由 毛毛 于 2025-11-4 09:01 编辑

在写命令插件的代码中,会用到一个js库,如下所示直接引用工作正常
  1. if (typeof XLSX === 'undefined') {
  2.     await this.loadScript('https://cdn.bootcdn.net/ajax/libs/xlsx/0.18.5/xlsx.full.min.js');
  3. }
复制代码

但有的机器不能上外网,于是将该库下载到本地,放置在lib目录下,如下所示。但是在运行时报错

  1. if (typeof XLSX === 'undefined') {
  2.     await this.loadScript('../lib/xlsx.full.min.js');
  3. }
复制代码



请问应该怎么处理?

附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

在活字格插件开发中,当需要引用本地的 JS 库(如 xlsx.full.min.js)时,不能直接使用相对路径(如 ../lib/xlsx.full.min.js)通过 this.loadScript() 加载,因为该方法主要用于加载可通过网络访问的脚本资源,而本地文件需通过插件资源管理机制引入。正确的处理方式是: [*]将 JS 库文件放入插件的 Resources 目录下 例如:将 xlsx.full.min.js 放入插件项目的 Resources/lib/ 文件夹中。 [*]在 PluginConfig.json 中声明该 J ...

2 个回复

最佳答案
最佳答案
毛毛
金牌服务用户   /  发表于:2025-11-4 09:00:25
来自 2#
本帖最后由 毛毛 于 2025-11-4 09:12 编辑

在活字格插件开发中,当需要引用本地的 JS 库(如 xlsx.full.min.js)时,不能直接使用相对路径(如 ../lib/xlsx.full.min.js)通过 this.loadScript() 加载,因为该方法主要用于加载可通过网络访问的脚本资源,而本地文件需通过插件资源管理机制引入。
正确的处理方式是:
  • 将 JS 库文件放入插件的 Resources 目录下
    例如:将 xlsx.full.min.js 放入插件项目的 Resources/lib/ 文件夹中。
  • 在 PluginConfig.json 中声明该 JS 文件
    修改插件配置文件,将本地库添加到 javascript 数组中,确保它随插件一起打包和加载:
    1. {
    2.   "javascript": [
    3.     "Resources/lib/xlsx.full.min.js",
    4.     "Resources/MyPluginCommand.js"
    5.   ]
    6. }
    复制代码

  • 无需动态加载,直接使用
    一旦 JS 文件被声明在 PluginConfig.json 中,它会在插件初始化时自动加载,因此可以直接使用 XLSX 对象,无需再调用 this.loadScript():
    1. if (typeof XLSX === 'undefined') {
    2.     // 不需要手动加载,只要配置正确,XLSX 就应该已经可用
    3.     console.error("XLSX library failed to load");
    4. }
    复制代码

以上回答来自活字格AI 技术顾问
非常标准,照做后正常。。

评分

参与人数 1金币 +5 收起 理由
Lay.Li + 5 赞一个!

查看全部评分

回复 使用道具 举报
Lay.Li悬赏达人认证 活字格认证
超级版主   /  发表于:2025-11-4 09:26:50
3#
代码这个东西,AI的回复还是很准确的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部