首页 文章 精选 留言 我的

精选列表

搜索[跨代理认证],共10000篇文章
优秀的个人博客,低调大师

NativeScript 8.6.2 发布,跨平台原生应用框架

NativeScript 8.6.2现已发布。NativeScript 使用户能够直接从 JavaScript 访问native API。目前,该框架为丰富的移动开发提供了 iOS 和 Android 运行时,并可用于多种不同的用例。 Bug Fixes android:以编程方式正确更改输入交互模式(#10434)(07d2129) android:在 TextField 中使用 nativeTextViewProtected (#10450) (c5561d6) core:可继承属性更改 backstack 传播 (#10438) (48b1856) core:安全重要检查 (#10455) (172d346) css:box-shadow 无处理 (#10445) (6744009) ios:字体变化设置不适用于标签(#10429)(2cf166d) ios:边界角度不统一(#10437)(aba3093) ios:带有监听器的 ScrollView 已删除 scroll delegate(#10432)(9fae9c4) ios:shadow 不考虑 z-index (#10433) (5a4bb7c) time-picker:使用 valueChanged 正确处理小时和分钟上的 0 (#10460) (4762699) Features core:initRootView 事件 (#10442) (82e9c67) core:新的defaultVisualState 属性选项可覆盖"normal"默认 visualState(#10440)(31ed40c) 更新说明:https://github.com/NativeScript/NativeScript/releases/tag/8.6.2-core

优秀的个人博客,低调大师

TGFX —— 跨平台 2D 绘图引擎

TGFX (Tencent Graphics)是一个轻量级 2D 图形库,设计用于渲染文本、几何图形和图像。它提供高性能的 API,可在各种 GPU 硬件和软件平台上运行,包括 iOS、Android、macOS、Windows、Linux、Web 等。 TGFX 最初是作为 PAG 项目的核心组件创建的,从 4.0 版开始成为 libpag 库的默认图形引擎。它的主要目标是在保持更小二进制文件大小的同时,为 Skia 图形库提供令人信服的替代方案。随着时间的推移,它已被许多其他产品采用,如 Hippy、腾讯文档和各种视频编辑应用程序。 包体优化 TGFX 最终以 400K 左右的大小覆盖了 Skia 近 2M 包体的绝大部分功能。核心优化策略主要有两点: 调度优化 TGFX 并不只是做 Skia 的简化,还把一些在业务上调用起来非常复杂的通用性流程进行了抽象封装: 在性能和架构方面,还做了这些额外的优化: 默认开启了 HardwareBuffer 的支持,来全面加速纹理的提交,包括 Android 端。 暴露了引擎内部 Path 对应的 GPU 高速缓存,避免矢量绘制充分进行三角剖分操作。 GPU 对象支持在任意线程释放,等关联的上下文激活时才清理,避免随机 Crash 问题。 约束图片解码完会尽可能只缓存 GPU 的纹理部分,理论上全局可以降低一半的内存占用。 将绝大部分缓存都交给了上层业务精确管理,避免随机绘制的缓存持续占用额外的内存。 在全平台都实现了默认字体的读取能力,包括浏览器,避免下载上百兆 CJK 字体的压力。 增加了对各种硬解视频帧格式的直接绘制能力,可以一次性上屏无需通过 CPU 转换格式。 放弃了 SKSL 的统一 Shader 语言设计,更加符合原生接口调用习惯,既节省了包体,也减少了 GPU Program 的编译耗时。

优秀的个人博客,低调大师

NativeScript 8.6.1 发布,跨平台原生应用框架

NativeScript 8.6.1现已发布。NativeScript 使用户能够直接从 JavaScript 访问native API。目前,该框架为丰富的移动开发提供了 iOS 和 Android 运行时,并可用于多种不同的用例。 Bug Fixes android:防止被破坏的对话框 rehydration(#10414)(7563549) core:box-shadow“none”处理(#10405)(c23695c) core:字体变化设置解析器无效轴 (#10427) (0847855) core:页面框架引用未在本机视图处理中取消设置(#10417)(22c21b7) css:防止“unset”和“inset”上的速记解析错误(#10424)(d70b48b) ios:添加/删除可重用视图的阴影(#10409)(ee87b52) ios:视图处理期间“undefined”的属性掩码(#10404)(212d086) ios:平移变换后的阴影位置(#10413)(c78ea79) Features android:允许 shared element转换与 ListView/CollectionView/Pager 一起使用(#10411)(e8c093d) 更新说明:https://github.com/NativeScript/NativeScript/releases/tag/8.6.1-core

优秀的个人博客,低调大师

Kubernetes跨StorageClass迁移,切换Rainbond默认SC

基于主机安装或基于Kubernetes安装的 Rainbond 集群(均使用默认参数安装),默认使用的共享文件存储是 NFS ,以 Pod 方式运行在 Kubernetes 中,但这种方式也有一些无法避免的问题,比如:NFS 的 SVC 无法通信时集群无法挂载存储则导致不能使用、服务器关机时卡在 umount 导致不能正常关机等等。 当然还有切换共享文件存储的需求,在第一次安装 Rainbond 时,大多数都使用的默认安装,使用一段时间后想切换到外部的 NFS,或者云上的 NAS等等。 在原生的 Kubernetes 集群中,通过 StorageClass 创建的 PVC 是无法修改存储后端的,需要将 PV、PVC 删除后通过新的 StorageClass 创建新的 PVC,然后再将数据迁移,再重新挂载 PVC。当有很多个 PVC 时,需要多次重复的操作。 而 Rainbond 虽然也是通过 StorageClass 创建的 PVC,但相比原生 Kubernetes 省去了创建 PV、PVC 和重新挂载的步骤,以及重复性的操作。在 Rainbond 中只需要将底层存储类更换,然后迁移 Rainbond 所创建的一整个目录,最后重新在页面中修改挂载即可完成迁移。 本文将讲述如何迁移 Rainbond 默认的 NFS 存储到外部 NFS 存储,大致分为以下几个步骤: 部署外部 NFS 存储并对接到 K8s 上。 备份 NFS 存储的数据。 恢复备份数据并切换 Rainbond 默认存储至外部存储。 注意: 关闭正在运行的应用,避免增量数据导致数据不一致。 组件挂载的存储必须是共享存储,其他存储则需要单独迁移。 部署 NFS 并对接到 K8s 上 外部 NFS 存储可以选择部署 NFS 双机热备或其他方案,这里就不演示了,以单节点 NFS 为例。 在 Centos 上部署 NFS 安装 nfs-utils yum install -y nfs-utils 创建共享目录 mkdir -p /data 编辑 /etc/exports 文件,添加如下内容: $ vim /etc/exports /data *(rw,sync,insecure,no_subtree_check,no_root_squash) 配置完成后,执行以下命令启动 NFS 服务: systemctl enable nfs-server systemctl start nfs-server 验证 NFS 是否可用 showmount -e 172.20.251.94 在 K8s 中部署 NFS Client 下面将外部的 NFS 存储对接到 Kubernetes 上,在 Kubernetes 中部署 NFS Client Provisioner 安装 Helm 命令 添加 Helm Chart 仓库 helm repo add rainbond https://openchart.goodrain.com/goodrain/rainbond 安装 NFS-Client-Provisioner helm install nfs-client-provisioner rainbond/nfs-client-provisioner \ --set nfs.server=172.20.251.94 \ --set nfs.path=/data \ --version 1.2.8 验证 NFS Client 是否可用,创建 PVC 验证。 $ vim test-pvc.yaml apiVersion: v1 kind: PersistentVolumeClaim metadata: name: test-claim spec: accessModes: - ReadWriteOnce volumeMode: Filesystem resources: requests: storage: 1Gi storageClassName: nfs-client $ kubectl apply -f test-pvc.yaml 查询 PVC 状态为 Bound 则正常。 备份默认 NFS 的数据 查看 rbd-system 下所有的 PVC。 kubectl get pvc -n rbd-system PVC名称 解释 data 测试存储是否正常默认创建的PVC(无用) data-nfs-provisioner-0 NFS Pod所使用的PVC,默认路径在宿主机的/opt/rainbond/data/nfs下。 data-rbd-monitor-0 存储监控数据。(可不要) rbd-api 存储 api request 请求日志。(可不要) rbd-chaos-cache 存储构建组件的缓存(可不要) rbd-cpt-grdata 存储平台上所有组件挂载共享存储数据,以及组件的日志。(必须) rbd-db-rbd-db-0 存储 MySQL 数据,默认是存在本地的,没存储在 NFS 中。 rbd-etcd-rbd-etcd-0 存储 Etcd 数据,默认是存在本地的,没存储在 NFS 中。 rbd-hub 存储镜像数据(必须) 以上数据中对于我们要迁移的重要数据有 rbd-cpt-grdata 和 rbd-hub,根据 VOLUME 名称在默认的存储目录 /opt/rainbond/data/nfs 下查找,例如 pvc-9ec619e3-1e20-4d7a-b744-aa04088fb6c3。 使用 rsync 同步工具,将数据同步到新的 NFS 存储服务器上,根据以下命令开始同步,根据实际情况修改命令。 rsync -avP /opt/rainbond/data/nfs/pvc-9ec619e3-1e20-4d7a-b744-aa04088fb6c3 root@172.20.251.94:/data rsync -avP /opt/rainbond/data/nfs/pvc-d0bf09ca-5543-4050-bd08-b02ebb593b4e root@172.20.251.94:/data 注意:数据同步完成后切记要校验数据的完整性。 切换 Rainbond 存储 更改 Rainbond 默认存储 修改 rainbondcluster CRD资源,添加 storageClassName $ kubectl edit rainbondcluster -n rbd-system spec: rainbondVolumeSpecRWX: storageClassName: nfs-client #由 NFS-Client-Provisioner 创建的 sc 修改 rainbondvolumes CRD资源,修改 storageClassName 为 nfs-client $ kubectl edit rainbondvolumes -n rbd-system spec: storageClassName: nfs-client 删除 Rainbond 基于默认 NFS 创建的 StorageClass rainbondsssc rainbondslsc kubectl delete sc rainbondsssc rainbondslsc 删除 rbd-system 命名空间下旧的 PVC。这时候会删除不掉,因为还有 POD 在使用该 PVC,先 ctrl c 结束。 kubectl delete pvc data data-rbd-monitor-0 rbd-api rbd-chaos-cache rbd-cpt-grdata rbd-hub -n rbd-system 删除 Rainbond 组件的控制器让 rainbond-operator 控制 PVC 重新创建。 kubectl delete deploy rbd-api -n rbd-system kubectl delete ds rbd-chaos -n rbd-system kubectl delete sts rbd-monitor -n rbd-system kubectl delete deploy rbd-worker -n rbd-system kubectl delete deploy rbd-hub -n rbd-system kubectl delete deploy rbd-resource-proxy -n rbd-system kubectl delete sts rbd-eventlog -n rbd-system kubectl delete ds rbd-node -n rbd-system kubectl delete pod -l release=rainbond-operator -n rbd-system 等待所有 POD 重新创建,创建完成后 Rainbond 平台可正常访问,正常工作。 恢复数据 下面将前面备份的数据恢复到新创建的 PVC 中。 此时 rbd-cpt-grdata 和 rbd-hub 新创建的目录下的数据都是自动创建,先将其删除。 rm -rf /data/rbd-system-rbd-cpt-grdata-pvc-44167209-1006-4de5-9801-afcce996449c/* rm -rf /data/rbd-system-rbd-hub-pvc-c326b89f-7c0e-4990-a8e2-31472799ccc8/* 再将备份的 rbd-cpt-grdata 和 rbd-hub 数据分别同步到新的目录中,例如以下命令。 rsync -avP /data/pvc-9ec619e3-1e20-4d7a-b744-aa04088fb6c3/* /data/rbd-system-rbd-cpt-grdata-pvc-44167209-1006-4de5-9801-afcce996449c rsync -avP /data/pvc-d0bf09ca-5543-4050-bd08-b02ebb593b4e /data/rbd-system-rbd-hub-pvc-c326b89f-7c0e-4990-a8e2-31472799ccc8 注意:数据同步完成后切记要校验数据的完整性。 重新 Rainbond 部分组件的 POD 生效。 kubectl delete pod -l name=rbd-api -n rbd-system kubectl delete pod -l name=rbd-chaos -n rbd-system kubectl delete pod -l name=rbd-monitor -n rbd-system kubectl delete pod -l name=rbd-worker -n rbd-system kubectl delete pod -l name=rbd-hub -n rbd-system kubectl delete pod -l name=rbd-resource-proxy -n rbd-system kubectl delete pod -l name=rbd-eventlog -n rbd-system kubectl delete pod -l name=rbd-node -n rbd-system 更改 Rainbond 上的组件存储 替换底层存储后,此时 Rainbond 上组件的存储还未修改,此时需要进入 Rainbond 的组件中将当前存储删除重新添加。 挂载路径、存储类型保持不变,删除当前的配置添加新的同样配置即可。 至此存储切换完成,后续请验证应用的数据是否都完整。 删除默认 NFS 存储资源(可选) 修改 CRD 资源,将 nfs-provisioner replicas 设置为 0 $ kubectl edit rbdcomponent nfs-provisioner -n rbd-system spec: replicas: 0 删除 nfs-provisioner 控制器 kubectl delete sts nfs-provisioner -n rbd-system 删除 nfs-provisioner 的 PV、PVC kubectl delete pvc data-nfs-provisioner-0 -n rbd-system kubectl delete pv nfs-provisioner 删除宿主机上的 NFS 数据存储目录 rm -rf /opt/rainbond/data/nfs

优秀的个人博客,低调大师

NativeScript 8.6.0 发布,跨平台原生应用框架

NativeScript 8.6.0现已发布。NativeScript 使用户能够直接从 JavaScript 访问native API。目前,该框架为丰富的移动开发提供了 iOS 和 Android 运行时,并可用于多种不同的用例。 Bug Fixes android:Utils.dismissKeyboard()无法在模态中工作(#10375)(6d44c2d) android:outline path 仅 支持 api >=33 (#10389) (ff66b1b) 类名拼写错误 (#10364) (f5f4666) core:注销后滚动监听器注册失败 (#10368) (e4fe276) css:防止重复的系统类 (#10355) (74e6814) ios:阴影层原点更新(#10376)(f54ebbb) testing:不再需要 e2e flag,testID 现在适用于 dev 或 prod 版本(#10396)(0a2b220) webpack:处理单个 appComponents env flag (#10401) (0b5393d) webpack:在 TerserOptions 中设置 keep_quoted_props: true (#10382) (2cb26c2) webpack:在 NativeClass 上强制使用 experimentalDecorators (#10356) (0efb84f) Features css:支持文本溢出 (#10369) (8d25d25) css:文本笔划支持 (#10399) (d647823) ios:addDelegateHandler 添加应用程序委托处理程序 (#10371) (a959a79) ios:改进了 background UI 的阴影处理 (#10374) (39eed52) shared-transition:pageOut 选项可实现更多动态页面动画 (#10350) (9f715c0) 领先的 debounce 支持 (#10388) (b6a5250) types-android:API Level 34 (#10400) (93e2478) types-ios:iOS 17 SDK (#10304) (fc172b3) Visionos:Vision Pro 支持 (#10392) (bbede5d) webpack:在 platforms 文件夹中放置隐藏的 sourceMaps (#10352) (3325b3e) 性能改进 android:批量调用 setupAccessibleView 以改进 TTI (#10391) (a4bfbda) core:在 Android 上缓存默认视图填充(#10390)(6f599fe) 更新说明:https://github.com/NativeScript/NativeScript/releases/tag/8.6.0-core

优秀的个人博客,低调大师

跨平台游戏引擎 Axmol-2.0.0 发布

添加实验性的 WebAssembly 构建支持(WebGL 2.0),由@nowasm贡献 已知问题 WebGL context lost 尚未处理 部署在 github pages 的 demo 可快速预览,注意:由于 Github 限制,未开启 WASM 多线程支持,因此多线程模块测试会报错,请忽略。 注意,以下涉及多线程的模块需要服务器软件启用多线程,即添加指定 http 响应头,参考:https://web.dev/coop-coep/,客户端编译已开启多线程支持。 AudioEngine ASTC多线程软解 TextureCache::addImageAsync MeshRenderer::createAsync 扩展模块 live2d 不支持 WASM 构建,因为其 SDK Core 部分未开源,且未提供 WASM 的预编译库 使用以下命令可快速在本机编译WASM并在浏览器预览cpp_tests axmol run -p wasm -xb "--target,cpp_tests" 添加了两个CMake选项来控制线程数量和启动html页面模板: AX_WASM_THREADS, AX_WASM_SHELL_FILE, 参考CMakeOptions.md OpenGL3/GLES3 支持, 增加cmake选项AX_GLES_PROFILE控制 GLES 版本。 增加了 3D 模型实例化渲染支持 使用 glslcc 作为新的 shader 编译工作流, 使用 ESSL310 语法编写 shader, axmol 编译系统自动编译到目标平台: MSL for Apple(macOS/iOS/tvOS) ESSL300: Android, ANGLE GLSL330: Desktop GL GLSL100:Android-4.2 增强 ProgramManager 加载机制,更加易用 增强文本渲染,基于 SDF(有向距离场)渲染的描边特效支持 增强 FileStream 接口, 可处理 4GB+ 大文件 增强 ASTC 硬件解码检测的精准性 使用 ANGLE GLES3.0 作为 Win32 平台的默认渲染后端 第三法库更新: ANGLE: 113.0.5672.128 ==> 115.0.5790.173 curl: 8.1.2 ==> 8.2.1 fmtlib: 10.0.0 ==> 10.1.0 FreeType: 2.13.0 ==> 2.13.2 llhttp: 8.1.1 ==> 9.0.1 OpenSSL: 3.0.9 ==> 3.0.10 webp: 1.3.0 ==> 1.3.1 xxHash: 0.8.1 ==> 0.8.2 zlib: 1.2.13 ==> 1.3 API 修改: 修改:ProgramManager::registerCustomProgram 添加: ProgramManager::loadProgram 删除: ProgramManager::getCustomProgram 删除: CommandBuffer::setLineWidth

优秀的个人博客,低调大师

NativeScript 8.5.4 发布,跨平台原生应用框架

NativeScript 8.5.4现已发布。NativeScript 使用户能够直接从 JavaScript 访问native API。目前,该框架为丰富的移动开发提供了 iOS 和 Android 运行时,并可用于多种不同的用例。 Bug Fixes android:改进内容 uri 处理 (#10316) (77f252e) animation:避免取消时未捕获的拒绝 (#10309) (622f365) Application:inBackground处理和丢失一次 (#10307) (e430555) 确保应用程序实例提前初始化 (#10315) (0401b09) shared-transition:交互式更新的race condition (#10312) (25cc49d) shared-transitions:图层不透明度在下一次勾选时设置回原始值 (#10310) (0956cb0) 更新说明:https://github.com/NativeScript/NativeScript/releases/tag/8.5.4-core

优秀的个人博客,低调大师

Photoflare —— 跨平台图像编辑器

Photoflare 是一款可用于 Linux 和 Windows 上 简单易用的界面里提供了基本的图像编辑功能的图像编辑器。它有一个免费而开源的社区版本 它的功能包括裁剪、翻转/旋转、调整图像大小。你还可以使用诸如油漆刷、油漆桶、喷雾罐、模糊工具和橡皮擦之类的工具。魔术棒工具可让你选择图像的特定区域。 你还可以在图像上添加线条和文本。你还可以更改图像的色调。 Photoflare 的主要功能: 创建/绘制图像 裁剪图像 旋转图像 调整图像大小 使用画笔、油漆桶、喷涂、模糊工具和图像等工具编辑图像 在图像上添加线条和文字 更改图像的色调 添加老照片滤镜 批量调整大小、滤镜等

优秀的个人博客,低调大师

NativeScript 8.4.2 发布,跨平台原生应用框架

NativeScript 使用户能够直接从 JavaScript 访问native API。目前,该框架为丰富的移动开发提供了 iOS 和 Android 运行时,并可用于多种不同的用例。 目前 NativeScript 8.4.2 已发布,此版本修复了若干问题,主要带来如下改动: Bug Fixes android:向后兼容 Java ,将 Float 转换为 Long for ApplicationSettings.getNumber #10140 core:更新 IOS 16 的元数据过滤 ( #10133 ) ios:修复框阴影边框半径 #10142 ios:navigatingTo 事件处理 #10120 ios:如果 additional insets 为零,则将其重置 #10134 listview: 删除设置为 null 的 ios 委托 #10138 utils:ios 过滤空值 #10117 更新公告:https://github.com/NativeScript/NativeScript/releases/tag/8.4.2-core

优秀的个人博客,低调大师

NativeScript 8.4.0 发布,跨平台原生应用框架

NativeScript 8.4.0现已发布。NativeScript 使用户能够直接从 JavaScript 访问native API。目前,该框架为丰富的移动开发提供了 iOS 和 Android 运行时,并可用于多种不同的用例。 Features android:支持 ImageSource 中的 drawable (#10098) (75eefa6) android:使用 NestedScrollView 来实现垂直 ScrollView (#9199) (cfaa813) core:支持 css 字体变化设置 (#9995) (a5e3e22) core:支持外部 XML UI 编译器 (#10008) (75503ef) HtmlView:可选属性 (#10057) (ca9c092) types-android:API Level 33 (#10113) (c1187fe) types-ios:16.1 (#10114) (da78e0b) utils:dismissKeyboard、copyToClipboard、setWindowBackgroundColor、getCurrentActivity 和 getResource (#10089) (2e1d2c1) webview:添加 iosAllowInlineMediaPlayback 属性 (#10014) (4a0e1c9) TypeScript 4.8+ 支持和 NativeClass decorator 改进 (#10081) (7f069a7) Performance Improvements core:android sdk 检查(#10084)(abd722c) Breaking Changes utils/utils is just Utils BEFORE import { layout } from '@nativescript/core/utils/utils' AFTER import { Utils } from '@nativescript/core' Utils.layout 这会影响一些插件。如果你使用遇到此问题的插件,可以执行以下操作: 1、暂时添加一个快速的 webpack 别名来缓解: webpack.chainWebpack(config => { config.resolve.alias.set('@nativescript/core/utils/utils', '@nativescript/core/utils'); config.resolve.alias.set('tns-core-modules/utils/utils', '@nativescript/core/utils'); config.resolve.alias.set('tns-core-modules', '@nativescript/core'); 2、向插件作者提交拉取请求。 WeakRef type Core 使用最新的 WeakRef 类型,你可以将 tsconfig 更新到最新的 targets.。 BEFORE tsconfig.json "compilerOptions": { "target": "es2017", ... "lib": ["es6", "dom"], AFTER "compilerOptions": { "target": "es2020", ... "lib": ["esnext", "dom"], 更多详情可查看:https://github.com/NativeScript/NativeScript/releases/tag/8.4.0-core

优秀的个人博客,低调大师

NativeScript 8.3.6 发布,跨平台原生应用框架

NativeScript 8.3.6现已发布。NativeScript 使用户能够直接从 JavaScript 访问native API。目前,该框架为丰富的移动开发提供了 iOS 和 Android 运行时,并可用于多种不同的用例。 Bug 修复 android:CSS 样式在 modal 页面中无法正常工作 (#10070) (95c3b30) android:定时器上的 WeakRef race condition (#10066) (a65fc06) ios:使用大标题时确保视图布局 (#10044) (0552a3a) ios:page isRunningLayout (#10078) (6f1a5d1) ios:防止在不需要时创建ActionBar(#10017) (8094cf2) ios:显示对话框消息时的标签页导航 (#10075) (0337a33) 更新说明:https://github.com/NativeScript/NativeScript/releases/tag/8.3.6-core

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册