跳到内容
新问题

有关于这个项目的问题吗?注册一个免费的GitHub帐户以打开一个问题,并联系其维护者和社区。

单击“注册GitHub”,表示您同意我们的服务条款隐私声明。我们偶尔会向您发送与帐户相关的电子邮件。

已经在GitHub上了?登录到您的帐户

继续使用ES6模块(或commonjs) #603

关闭
0立方厘米已打开此问题2016年6月6日·9条评论
关闭

继续使用ES6模块(或commonjs) #603

0cv公司已打开此问题2016年6月6日·9条评论

评论

@0cv公司
复制链接
贡献者

大多数web项目现在都使用模块绑定器(如Webpack、System.js、JSPM等)构建资产。这将有助于让这些捆绑商更容易使用Fancytree。这就是我如何将Fancytree(以最简单的方式)与Webpack结合使用的方法,虽然它很有效,但感觉很尴尬:

const jQuery=要求('jQuery')//所需jquery-ui模块最少require('jquery-ui/core')require(“jquery-ui/widget”)require(“jquery-ui/effect-blind”)//通过注入jquery导入fancytreerequire('imports?jQuery=jQuery!jQuery.fancytree/dist/jQuery.ancytree.js')//潜在的扩展(通过注入jquery)require('导入?jQuery=jQuery!jQuery.fancytree/src/jQuery.fancyttree.childcounter.js')//现在我们可以使用jQuery#fancytree

虽然jQuery不能很好地与任何模块绑定器配合使用,但一个简单的改进想法是通过自动要求jQuery来做类似于jqueryUi的事情,而不是假设jQuery是全局变量。

例如,jquery-ui/core.js看起来像这样:

var jQuery=要求('jQuery');(函数($,未定义){//...})(jQuery);
@3月10日
复制链接
所有者

谢谢,我对这里的改进持开放态度。
这将是向后兼容的吗?如果不是,您是否知道这种模式?

@0cv公司
复制链接
贡献者 作者

当检查模块包装是否存在时,向后兼容性是可能的。这里有一篇很好的关于它的博客文章http://ifandelse.com/its-not-hard-making-your-library-support-amd-and-commonjs/

现在,我看到了从jquery-ui加载什么的额外复杂性。OOTB,我上面列出的3个jquery-ui模块已经足够了(即使它们自己加载更多),但我认为这个插件支持的不仅仅是“盲”效应。。。

除此之外,还可以进行一些假设以简化。下载dist文件的人肯定对任何模块绑定都不感兴趣,他们会将缩小后的文件直接放在脚本标记中。其他使用browserify的人可能对模块绑定也不感兴趣,而那些使用npm的人很可能对此感兴趣。看起来这就是jquery-ui的人一直在使用的方法(通过直截了当地说var jQuery=要求('jQuery');在dist文件中)。

@3月10日 3月10日远离的这个等待标签2016年6月9日
@哭泣
复制链接

例如,我们不能通过NPM在通过Brunch构建的过程中轻松地包含这个库,这太糟糕了。

@3月10日
复制链接
所有者

看起来jQueryUI1.12已经改变了小部件的布局。有什么建议吗?
由于我自己没有使用这些装载机,如果有人可以帮助测试,甚至提交PR,那将很酷。。。

这是被引用的2016年9月15日
@黑手党
复制链接

IMO,fancytree是一个不错的插件,应该对其进行重构,以摆脱jquery UI小部件系统,并且可以很容易地将其模块化以支持UMD。

@黑手党
复制链接

有什么requirejs解决方案吗?

@黑手党
复制链接

黑手党 评论2017年2月14日

目前,很少有文档显示如何使用最新版本的requirejs。

以下是如何使用jquery.fancytree所有和最新jquery-ui在AMD的支持下,因为使用单个扩展将需要大量的匀场

要求.配置({
  路径:{
    “jquery”:'./js/vendor/jquery“,
    “jquery-ui”:'./js/vendor/jquery-ui',
    “jquery.fancytree”:'./js/vendor/fancytree/jquery.fancytrea-all“
  },
  垫片:{
    “jquery.fancytree”:{
      deps公司:[“jquery”, “jquery-ui/core”, 'jquery-ui/effect', 'jquery ui/effects/effect blind', “jquery-ui/widgets/draggable”, “jquery-ui/widgets/droppable”],
      出口:“jQuery.fn.fancytree”
    }
  },
  onBuildWrite(内部版本写入):功能 (模块名, 路径, 目录) {
    '使用严格'
    如果 (模块名 === “jquery.fancytree”) {
      目录 = '定义(“jquery.fancytree”,[“jquery”,“jquely-ui/core”,“jquery-ui/effects/effect-blind”,“j查询-ui/widgets/draggable”,“J查询-ui/小部件/droppable”],函数(jquery){' + 目录 + '});'
    }
    返回 目录
  }
})

//用法
 定义([
     “jquery”,
     “jquery.fancytree”,
     “css/css/fancetree/skin-custom/ui.fancetree.css',
   ],
   功能($) {
     '使用严格'
     //
     $(“#tree”).奇树({
       复选框:真的,
       来源:[{标题:'节点1'}, {标题:'节点2',钥匙:“id2”}]
     })
     //
   })
//

@3月10日
复制链接
所有者

@djangosdk谢谢你举个例子。
(#694现在是一个悬而未决的问题,一旦实现,应该会让这变得更容易。)

3月10日添加了提交引用的这个问题 2017年10月29日
@3月10日 3月10日将此关闭为完整的在里面 3b3桶 2017年10月29日
@3月10日
复制链接
所有者

免费注册 在GitHub上加入此对话.已经有帐户了吗?登录以发表评论
项目
还没有
发展

没有分支或拉请求

4名参与者