关于Sample2 Webpack例子运行的其他疑问
查看了Sample2的 webpack的例子
env = new JsEnv(new TSLoader(System.IO.Path.Combine(Application.dataPath, "../Puer-Project/out")));
env.ExecuteModule("main.mts");
引入了 Axios 运行okay, 这样的形式 我理解了,但是我有一个其他形式的用法比如 xlua,那种一个MonoBehaviour对应一个Ts脚本的情况 伪代码
class test : xx
{
protected override void InternalAwake()
{
base.InternalAwake();
_jsContext = JSComponentContext.Get(Context);
_scriptProxy = _jsContext.LoadScript(this, _scriptName, _componentName);
// awake
var proxyCall = _scriptProxy.Get<Action<string>>("call");
proxyCall.Invoke(fn);
}
}
那如果是这样的情况 是否 还能使用webpack呢? 使用webpack的主要想法是可以把相关的 第三方库 都可以通过webpack自动引入
用tsloader的时候,业务逻辑也用webpack我觉得没有什么必要。 axios就已经是一个第三方库了,其它第三方库应该也可以用这一套才对。
也就是说 第三方库 采用axios 这种形式 引入。但是 业务逻辑还是散文件是吧。 那最终输出应该就是 业务Scripts目录/**/*.js 所有的业务脚本 第三方库xx.js 是不是就是没有太好的方案 可以tsloader 和 webpack业务一起用
tsloader是想省去写业务代码时还要启动一个另外的进程watch+编译的麻烦,加入了webpack结果还是引入了另一个编译窗...有点背道而驰
实际上你也不一定要使用tsloader,把它当示例程序,抠代码出来用也是可以的。比如把source-map,console-redirect等功能拿出去,其它自己写。或者直接打开DISABLE_EDITOR_FEATURE
明白你的意思了,就是有个很不成熟的想法 比如 我的业务逻辑引用了第三方库(比如node_modules里的一些兼容unity+puerts运行时的库)。我的想法是用webpack 把引用的一起打包进来 ,要不然发布收集是个问题。(当然可以要求把库打成.js放到目录里一起打包但是没有npm的方便) 所以才想到了这些,不知道有什么好的解决办法,让业务逻辑也是散的但是依赖的库可以自动收集
明白你的意思了,就是有个很不成熟的想法 比如 我的业务逻辑引用了第三方库(比如node_modules里的一些兼容unity+puerts运行时的库)。我的想法是用webpack 把引用的一起打包进来 ,要不然发布收集是个问题。(当然可以要求把库打成.js放到目录里一起打包但是没有npm的方便) 所以才想到了这些,不知道有什么好的解决办法,让业务逻辑也是散的但是依赖的库可以自动收集
是有道理。或许可以考虑平时开发时按Sample4的做法跑,对大部份人没有理解成本。最终上线再由一个懂的人统一将依赖库用webpack打包压缩。