WebStrom配置PuerTS
一般我们开发的时候 PuerTs 采用了VsCode一套配置,我们当然也可以使用WebStrom做为我们默认的开发调试工具 以WebStorom为例:
# 一、首先,我们在JsEnv环境创建的时候 以官方脚本
https://github.com/chexiongsheng/puerts_unreal_demo/blob/master/Source/puerts_unreal_demo/TsGameInstance.cpp
// Fill out your copyright notice in the Description page of Project Settings.
#include "TsGameInstance.h"
void UTsGameInstance::Init()
{
}
void UTsGameInstance::OnStart()
{
GameScript = MakeShared<puerts::FJsEnv>();
//GameScript = MakeShared<puerts::FJsEnv>(std::make_unique<puerts::DefaultJSModuleLoader>(TEXT("JavaScript")), std::make_shared<puerts::FDefaultLogger>(), 8080);
//GameScript->WaitDebugger();
TArray<TPair<FString, UObject*>> Arguments;
Arguments.Add(TPair<FString, UObject*>(TEXT("GameInstance"), this));
GameScript->Start("QuickStart", Arguments);
}
void UTsGameInstance::Shutdown()
{
GameScript.Reset();
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
修改调试的脚本 注释其中的 GameScript行并取消注释再下面两行
void UTsGameInstance::OnStart()
{
//GameScript = MakeShared<puerts::FJsEnv>();
GameScript = MakeShared<puerts::FJsEnv>(std::make_unique<puerts::DefaultJSModuleLoader>(TEXT("JavaScript")), std::make_shared<puerts::FDefaultLogger>(), 8080);
GameScript->WaitDebugger(2.0f);
TArray<TPair<FString, UObject*>> Arguments;
Arguments.Add(TPair<FString, UObject*>(TEXT("GameInstance"), this));
GameScript->Start("QuickStart", Arguments);
}
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 二、关闭PuerTS默认的系统Debug选项

系统的设置开启会引起相关冲突,必须在开启脚本内Dubug时候,将其关闭
# 三、WebStrom侧 右上角 新建一个Configuration
选择Attach to Node.js/Chrom 选项 并起名示例为 "TypeScript"

填写Name、Host、Port、并勾选 Reconnect automayically

# 四、在后上角上选择刚才创建的 配置
# 五、在WebStrom Setting上 选择Languages&Frameworks->TypeScript 并勾选 Recompile on changes

# 六、确认项目目录文件夹上tsconfig.json 的项目目录和生成JS文件目录没有出错,以官方示例为例

这时新建一个TS文件或修改一个TS文件会对于自动生成、更新一个js文件

# 七、启动WebStrom调试 下断点 可触发

# 八、注意
1、勾选WebStrom中的自动重连 开启UE编辑器运行时 会自动启动WebStrom调试,非常方便

2、UE的启动JSEnv时候等待Debugger时候可以给一个超时时间,经验来说2秒比较合适,如果有自动重连或忘记启动调试 都可以正常运行
