[Unity] 1.4.0.rc esm模块无法调用cjs模块
尝试在mts里调用一个cjs模块,直接报错: // C.cjs class C { say() { console.log('hii world'); } }
module.exports = C;
...... 在另外一个文件里调用 // A.mts import { default as C } from './C.cjs'; let c = new C(); c.say();
用ExecuteModule 执行A.mts文件,unity里报错 Exception: ../dist/A.mjs:1: SyntaxError: The requested module './C.cjs' does not provide an export named 'default'
俩参数都已经设置

也无法正常使用protobuf
mjs引入cjs能否使用require引入?比如这样
A.mts
const C = require('./C.cjs')
let c = new C();
mjs引入cjs能否使用require引入?比如这样
A.mts
const C = require('./C.cjs') let c = new C();
这里的require是基于全局路径的require,因此路径的相对关系并不准确,但可以临时解决你的问题。
如果要做到像Node.js一样,理想解决方案应该是 #1003 那样。我处理完 #1003 后再补充一个Sample到 https://github.com/puerts/puerts-commonjs
我下了puerts和commonjs俩个packages,是还需要设置什么东西么? 设置为commonjs,运行会报错: Exception: B.js:2: ReferenceError: exports is not defined
导出就俩个文件: A.js Object.defineProperty(exports, "__esModule", { value: true }); exports.A = void 0; class A { speak() { console.log('hiiii'); } } exports.A = A;
B.js Object.defineProperty(exports, "__esModule", { value: true }); const A_1 = require("./A"); const a = new A_1.A(); a.speak();
哦 知道了。之前一直通过executemodule来执行commonjs。 _jsEnv.ExecuteModule("B.js") 现在好像不支持了....只能用Eval("require('B.js')");