Egret社区
产品 Egret Wing 版本 1
复现概率 100% 平台 Windows 1
复现步骤 引用项目文件夹外的ts文件发布成web会报编译错误
问题描述 引用项目文件夹外的ts文件发布成web会报编译错误
错误代码 引用项目文件夹外的ts文件发布成web会报编译错误
BUG截图
引用项目文件夹外的ts文件发布成web会报编译错误,因为项目结构原因,有些库文件是放置在白鹭项目文件夹的上层目录中,这个导致发布的时候直接报错,编译不会出错。

您正在使用白鹭编译器 5.2.18 版本开始发布 web 版本:  Error D:/....../common/....ts (1,15): Cannot compile modules using option 'outFile' unless the '--module' flag is 'amd' or 'system'.RenamePlugin: libs/modules/egret/egret.min.js => libs/modules/egret/egret.min_e70fa1ee.jsRenamePlugin: libs/modules/egret/egret.web.min.js => libs/modules/egret/egret.web.min_e835c5d0.jsRenamePlugin: libs/modules/eui/eui.min.js => libs/modules/eui/eui.min_e8f47f49.jsRenamePlugin: libs/modules/assetsmanager/assetsmanager.min.js => libs/modules/assetsmanager/assetsmanager.min_77c2fdfe.jsRenamePlugin: libs/modules/tween/tween.min.js => libs/modules/tween/tween.min_6c5a88f9.jsRenamePlugin: libs/modules/promise/promise.min.js => libs/modules/promise/promise.min_83a6a5d.jsRenamePlugin: resource/default.thm.js => resource/default.thm_48409d6b.jsRenamePlugin: main.min.js => ./main.min_6595064c.js编译项目失败

分享到 :
0 人收藏

9 个回复

倒序浏览
冰湖  官方团队 | 2019-4-19 17:32:34
http://developer.egret.com/cn/gi ... tsCallJs/index.html
你好,js与ts的互相调用可以参考这个链接
xigalto  登堂入室 | 2019-4-20 19:00:17
冰湖 发表于 2019-4-19 17:32
http://developer.egret.com/cn/github/egret-docs/Engine2D/callJS/tsCallJs/index.html
你好,js与ts的互 ...

不是在项目文件夹内的互调,而是在白鹭项目文件夹以外的ts文件。

project/src/
global/xxx.ts

project为白鹭项目文件夹,global为与之同级的文件夹。如果直接把xxx扔到src里当然没问题,但是现在这个结构就不行,会报错。我在vscode里这样使用是可以编译通过并且使用webpack打包成功,而egret里面只能编译成功,发布成web就会报错
冰湖  官方团队 | 2019-4-22 10:16:56
你好,请问您的global/xxx.ts的作用是什么?
xigalto  登堂入室 | 2019-4-22 21:54:11
冰湖 发表于 2019-4-22 10:16
你好,请问您的global/xxx.ts的作用是什么?

作用是与其他项目共享一个库内容,通常一个项目不只有前端,还有后端,当前端与后端有共同的算法时会共用一个库。为什么不放到白鹭的libs里面去作为第三方库引入这个问题很简单,就是为了让项目结构更清晰和便于维护,目前的项目结构大概如下

server1
server2
global
client  --白鹭实现
这结构中server1和server2由于使用vscode的ts插件编译的,因此可以正常使用。client部分会报莫名的错误。
冰湖  官方团队 | 2019-4-23 09:28:34
egret引用第三方库 是需要在egretProperties.json 中配置的,比如P2物理引擎库,粒子库,龙骨动画库
如果直接引用 是不行的
xigalto  登堂入室 | 2019-4-23 13:05:10
冰湖 发表于 2019-4-23 09:28
egret引用第三方库 是需要在egretProperties.json 中配置的,比如P2物理引擎库,粒子库,龙骨动画库
如果直 ...

没办法了,我已经放弃共享文件了,直接在src里放了一份,只能按一种模式做,不按这个模式弄就会有各种奇奇怪怪的问题。
冰湖  官方团队 | 2019-4-23 13:33:36
你是想实现什么功能呢?
xigalto  登堂入室 | 2019-4-23 14:23:56
冰湖 发表于 2019-4-23 13:33
你是想实现什么功能呢?

很简单,可以引用白鹭项目文件夹以外的ts文件就算满足我的功能了。为什么需要引用项目文件夹以外的文件而不是直接放到项目src文件夹里?这个是因为不想同一个库在很多文件夹里都存在,简单的说就是希望可以有个搜索路径之类的功能。vscode本身编译ts是有这个功能的,但是在wing里面似乎被修改了。

目前白鹭只能引用src里面的,或者在libs里指定的,通过更改tsconfig.json可以在编译阶段顺利完成编译,但是一旦要发布内容或者运行就有各种报错。至少从目前阶段来看是不能这么用了,只能放到项目文件夹内。
冰湖  官方团队 | 2019-4-23 17:10:57
暂时的话  是没法这么做的,这涉及到引擎内部架构
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号 )

Powered by Discuz! X3.4 © 2001-2019 Comsenz Inc.

返回顶部