反映一个bug。需要支持“es模块格式的js插件”。js插件问题在于它不能内import cc模块。

例如想写一个js库(通过ts输出成js,模块格式为es, rollup打包),在3.0中导入为插件,选独立模式,然后就用不了,别的TS代码导入不了这个lib。好像3.0只认TS不认JS。

也无法通过iife, umd等通过全局变量来访问lib.js。因为cc全局变量被你们干掉了,导致只能写和cc无关的库。

下面这个说的比唱的还好听。

报错内容
Uncaught SyntaxError: Cannot use import statement outside a module

lib.js内容

import { warn, Node } from ‘cc’;

var Util;

(function (Util) {

function d2r(degree) {

    return degree * 2;

}

Util.d2r = d2r;

})(Util || (Util = {}));

var Util$1 = Util;

export { Util$1 as Util };

warn(“我是Node”, Node);

为什么一定要做成插件,你做成一个非插件不也行吗?

你们雅基不咋做游戏的。你们不是游戏开发用户。

但是小游戏生态,人家一些队伍几百个小游戏,就想着封装点库,加点料给库里面,防公司外部人也做点内部风控,这需求不过分呀

temp/**/cc.d.ts 这个可以用。

//declare const cc: never;

import * as cc1 from "cc"

declare global{
    var cc:typeof cc1;
}
1赞

是不过分啊,但是做成团队库也不影响它以非插件脚本的形式存在啊。插件脚本无非就是原封不动复制到最终项目,不能用模块或者说cc管不了它用的什么模块的。