你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
输入关键字进行搜索
搜索:
没有找到相关结果
Aar0n
赞同来自:
腊笔小新
康伟
177*****182
荣Ryan
烟雨离殇
SF
郭兆奎
此刻该沉默
Laya用户
意帅.yisa
迷途小羔羊
182*****089
189*****909
要回复问题请先登录
17 个回复
Aar0n
赞同来自:
腊笔小新
赞同来自:
在之前的版本1.8,2.0,2.1不是都好好的吗,升级2.2后反而还不行了。
刚好和Laya通过项目建立了深厚的感情。
这一升级此刻,我的心情如图所示~
腊笔小新
赞同来自:
康伟
赞同来自:
177*****182
赞同来自:
用新版ts项目 示例项目都报错
开始编译: Tue Jul 30 2019 16:39:17 GMT+0800 (中国标准时间)
--------------------------------------
[16:39:18] Working directory changed to D:\laya\2.2.0\resources\app
[16:39:18] Using gulpfile D:\Users\Administrator\Personal\myLaya2.2\Client\.laya\compile.js
[16:39:18] Starting 'tsc'...
[16:39:18] Starting 'CopyNoneTSFile'...
[16:39:18] Finished 'CopyNoneTSFile' after 169 ms
error { Error: Command failed: D:\laya\2.2.0\resources\app\node_modules\.bin\tsc.cmd -b "D:\Users\Administrator\Personal\myLaya2.2\Client\src\tsconfig.json"
at ChildProcess.exithandler (child_process.js:217:12)
at emitTwo (events.js:106:13)
at ChildProcess.emit (events.js:194:7)
at maybeClose (internal/child_process.js:899:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:226:5)
killed: false,
code: 1,
signal: null,
cmd: 'D:\\laya\\2.2.0\\resources\\app\\node_modules\\.bin\\tsc.cmd -b "D:\\Users\\Administrator\\Personal\\myLaya2.2\\Client\\src\\tsconfig.json"' }
stdout src/ui/layaMaxUI.ts(7,19): error TS2304: Cannot find name 'Label'.
src/ui/layaMaxUI.ts(8,18): error TS2304: Cannot find name 'Label'.
[16:39:28] Finished 'tsc' after 10 s
[16:39:28] Starting 'tsc:compile'...
tsc compile completed!
[16:39:28] Finished 'tsc:compile' after 36 μs
--------------------------------------
编译结束,gulp编译耗时: 11.13s
编译结束,总耗时: 12.893s
荣Ryan
赞同来自:
这次步子迈得有点大,舍弃了browserify改用rollup等等。很多东西兼容不了。
我只升级类库也出现了运行错误。
烟雨离殇
赞同来自:
177*****182
赞同来自:
SF
赞同来自:
郭兆奎
赞同来自:
循环引用的问题其实没大家想象的那么严重,现在问题是我们ide会把循环引用报错,导致不会启动chrome。
实际上你们的项目如果没有修改的话,即使有循环引用,只要原来能运行那么现在应该也能运行。
不过循环引用始终是个问题,很可能产生出错误顺序的代码,这个问题目前任何打包工具都无法解(解决了就与js标准不符合了),只是有的打包工具不报而已。
要去掉项目中的循环引用,只要根据rollup报的循环路径,找到关键的地方打破循环就行,根据我们的转换经验,这个过程并不难。
需要注意的是对于TS来说,A.ts import B.ts 同时 B.ts import A.ts 不一定会构成循环引用,只有他们生成的js也有这种情况才构成循环。
例如 A.ts
import B from 'B'
class A{
b:B;
}
这种的,在生成js以后由于B只是表示类型,js是不需要的,所以上面的import就没了。
无法去掉的import主要是类似 new B, extends B, instanceof B, 以及静态成员访问B.stM 这种形式
例如上面的改成
b=new B() 就真的是循环了。
对于真正的循环可以通过引入一个接口对象等方式解决。这个就要看具体项目了。
建议大家正视循环引用的问题,真正的去解决它,而不是看运气,运行出错再去改。
ide报错的问题我们下周就会去掉。
此刻该沉默
赞同来自:
Laya用户
赞同来自:
腊笔小新
赞同来自:
不会提示循环引用, 可以调试. 发布也用旧的脚本 .
const uglify = require(ideModuleDir + "gulp-uglify");
改为
const uglify = require(ideModuleDir + "gulp-uglify-es").default;
mangle: false
这样压缩也不会错了 ,完美.
意帅.yisa
赞同来自:
迷途小羔羊
赞同来自:
182*****089
赞同来自:
189*****909
赞同来自: