徐州网站建设:require.js与IDEA的配合
- 本文主要讲述在html中使用requirejs时,若何让IDEA加倍智能识别javascript的方式。
测试时的目录结构,一种典型的 thinkphp 的结构,同时,在 a.thml 中通过 requirejs 引用 了 Public/Home/View/moduleA/a.js,
后面我们的测试,都在 a.js 中举行。
路径可识别 amd
class, 工具,方式,都能完善识别
class 导出
我们在 Class1.js 中导出一个 Class,且只使用 AMD 方式导出,代码如下:
define([], function () { class Class1 { static a() { } ia() { } } return Class1; })View Code
-
- 当我用 control 按下时,Class1 能识别,且能进入
- 导出的符号 c1,能自动遐想class静态,实例方式
工具导出
我们使用 moduleA/obj1.js 文件导出一个工具,代码如下:

define([], function () { return { /** * obj1 的 a 方式 */ a: function () { }, } })View Code
-
- 同导出class一样,能完善自动遐想
路径不能识别 amd
class导出
我们在 require.config 中设置了 modulaA/Class2.js 的路径,如下:

require.config({ paths:{ 'm1.class2': '../../../../Public/Home/View/moduleA/Class2', } })View Code
Class2.js 文件与 Class1 结构一样,如下:

define([], function () { class Class2 { /** * class2 的 static a 方式 */ static a() { } /** * class2 的 instance ia2 方式 */ ia() { } } return Class2; })View Code
-
- 不能识别路径
- 不能识别文件符号
- 不能识别静态方式
- 不能识别实例方式
解决设施
-
- 若是存在同名的class ,需要两个 class 都使用@alias 别名,若是不存在同名class可以不用@alias
- 若是有静态的字段或方式,使用@exports声明导出,且指定导出名字
- 在引用的地方,通过@module指定模块的名字,且导入的变量名与类名相同
遗留问题:
-
- Class3不是很好的被识别为 class,导致 Class3.ia 可以被导航(但导航是错的)。如下:
接下来我们通过 Class3 举行示例,Class3代码如下:

define([], function () { /** * @alias n1.Class3 * @exports n1/Class3 */ class Class3 { static b = { a: function () { } }; /** * */ constructor() { } /** * class3 的 static a 方式 */ static a() { } /** * class3 的 instance ia2 方式 */ ia() { } } return Class3; })View Code
效果如下:
工具的导出
工具导出没有找到很利便的设施,只能通过 @typedefine 来界说类型,然后在用的地方声明类型,如下:

define([], function () { /** * @typedef {Object} n1.obj1 * @property {Function} a * @property {int} b */ let ob = { /** * obj1 的 a 方式 */ a: function () { }, b: 1, }; return ob; })obj1.js
路径可识别 umd 和 路径不能识别 umd
我们准备了一个umd导出的类,如下:

;(function (factory) { 'use strict'; if (typeof define === 'function' && define.amd) { // AMD define([], factory); } else if (typeof module !== 'undefined' && module.exports) { // CommonJS module.exports = factory(); } else { // Global window.umd1 = factory(); } }(function () { class umd1 { static a() { } ia() { } } return umd1; }));umd1.js
在使用过程中发现,静态,示例方式都无法遐想。工具的导出,IDEA 更无法识别。
设施
对于类的导出,可以接纳与 #路径不能识别 amd 的类导出一样的解决设施。
对于工具的导出,只有接纳@typedefine 方式了。。。
附:文中代码参见https://github.com/zhongchengyi/demo.require-vue-idea
,www.sweetyhk.com欢迎进入欧博网址(Allbet Gaming),欧博网址开放会员注册、代理开户、电脑客户端下载、苹果安卓下载等业务。
本文系作者授权本站发表,未经许可,不得转载。

推荐文章
Recommend article-
电银付大盟主(dianyinzhifu.com):谷歌苹果相继自研芯片,迫使传统芯片厂改推客制化
科技/阅读:159 -
usdt无需实名买卖(caibao.it):紧锣密鼓开展!中国空间站焦点舱明年春天将发射 后续另有天舟二号、神州十二号
科技/阅读:99 -
电银付app安装教程(dianyinzhifu.com):嫦娥五号月球样品入住“新家” 科学研究正式启幕
科技/阅读:67 -
景德镇二手房信息:苹果经典软件推荐: 1. 安全软件:不需要任何软件 2. 浏览器:Safari/alook 3. 密码管理:1Password/iCloud钥匙 4. 任务管理:Things 3 / Omnifocus / 2Do 5. 音乐: Appl
科技/阅读:91 -
长治卫校贴吧:阿里抗“疫”:从“数字基建”到平台式模板
科技/阅读:185 -
红米note9pro和红米k30哪个好 区别对比评测选谁好
科技/阅读:180

热门文章
HOT NEWS