发布的时候,插件脚本不能自己转换为ES5规范的?

赞!!!!

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。

你好,我们在 3.0.1 上修复了一个 js 脚本不能被编译的问题 ,不过你这个 lcc-framework.js 里有一个编译报错

这个可能需要你这边确认下这个 tyLSos 模块有没有引入呢


确定了,这个嵌入的protobuf里面引入的。
这个protobuf 是官方下载下来,然后用webpack打包的,最好追加到js后面的。有什么好办法吗,好像正式运行的时候又不会报错。
或者在编辑器里面就不打包进去了, 然后在发布的时候再选择是否嵌入?

直接import npm 里面的protobuf然后打包试试?

既然这是插件脚本了, 你们能不能只转语法,ES6转ES5, 毕竟就是预览的时候语法有问题

毕竟插件脚本主要的问题还是,编辑器,调试和发布环境中JS版本不一致的问题。我们加入的时候保证和编辑器版本一致, 调试和发布的时候你们转换一下应该就没问题了

诶,之前给你的解决方案不是让你搞成非插件的形式?

你别用插件脚本了吧,creator 一直对插件脚本就是不处理。你就用非插件的,现在功能挺全了,你都可以不用webpack打包,交给creator去打包

非插件脚本好像不能添加js中的组件

js 组件的意思是?

里面有很多组件的代码,需要在编辑器中运行

你意思是说,非插件代码里,你想写一些关于编辑器的代码吗?这样能否满足你需求:

import { EDITOR } from 'cc/env';
class Compoent {
  start() {
    if (EDITOR) {
        console.log(`我现在在编辑器中运行`);
    }
  }
}

具体你可以举个不能写 “js组件” 的例子,帮你看看

你是说整个工程不用tsc打包吗,那么我怎么做裁剪,不能裁剪,很多小游戏怕是不会去使用的。

你工程是开源的吗?

是准备开源的, 但是现在还没有发布, 工程就是上传给你的

如果不能做就算了吧, 我看做成 2.4.x的也可以

我看了下,是可以做的。

你这里面用到了引擎的功能模块。而且你现在是用全局变量 cc 去访问的,但是 3.0 开始都开始用模块了。

建议如下:

  • 不勾选插件脚本;就做成普通脚本。

  • 在 lcc-framework 里可以直接 import "cc" 里面去使用引擎功能。

  • 照样用打包工具打包 lcc-framework 为单个文件,后缀最好为 .mjs。但是打成普通的 js 脚本,打成 esm 模块

  • 在打包工具里面,把 "cc" 设为外部模块。webpack 我不太熟悉,rollup 里面就是 externals: ["cc", "cc/env"] 就可以。

  • 让用户放你的库 lcc-framework.mjs 到项目里,用法就是 import lcc from "./lcc-framework.mjs";