跳到内容
新发行

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

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

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

jquery.fancytree-all-deps.min.js无法加载require.js #773

关闭
谢尔盖维克已打开此问题2017年9月22日·15条评论
关闭

jquery.fancytree-all-deps.min.js无法使用require.js加载 #773

塞尔维亚语已打开此问题2017年9月22日·15条评论

评论

@谢尔盖维克
复制链接

复制自#694:我使用带有以下requireJs配置的2.18版(为了简洁起见,我删除了另一行),它可以工作

路径:{jqueryUI:“jqueryUI/jquery-ui-1.11.4.min”,fancyTree:'fancyTree/jquery.fancyttree.min'}垫片:{“jqueryUI”:{部门:[“jquery”],出口:“$”},“fancyTree”:{deps:[“jqueryUI”],导出:“$.ui.fancytree”},}

由于我没有直接使用jQueryUI,所以我尝试使用v2.24中的新jquery.fancytree-all-deps.min.js,并使用以下配置来删除此依赖项

路径:{fancyTree:'fancyTree/jquery.fancyttree-all-deps.min'}垫片:{“fancyTree”:{导出:“$.ui.fancytree”},}

但它失败了
未捕获错误:Fancytree断言失败:Fancystree需要jQuery UI

@谢尔盖维克
复制链接
作者

我试图将jQuery UI(第12-18行)移到第1行上方。作为结果代码:
domObj.fancytree(treeOptions);
引发异常
未捕获类型错误:domObj.fancytree不是函数
我已尝试检查控制台的可用性$.ui和$.ui.fancyTree:

$.ui(美元){版本:“1.12.1”,位置:{…},keyCode:{…{}}$.ui.fancyTree未定义

我已将日志添加到控制台以调试初始化

/*! Fancytree核心*/console.log(“我在这里”);!函数(a,b,c,d){“使用严格”;函数e(b,c)。。。。。。。

有趣的是,如果jQuery UI保持原样,我可以看到记录的字符串(第12-18行),但是如果jQueryUI移到第1-6行,我就看不到记录的字符串。

@3月10日 3月10日更改了标题将不带jQueryUI依赖项的库用作AMD模块 jquery.fancytree-all-deps.min.js无法加载require.js 2017年9月23日
@杰克罗塞托
复制链接
贡献者

我遇到了同样的问题。我认为这与jquery.fancytree-all-deps.min.js中包含的jQueryUI代码有关,该代码使用AMD(如果可用)来加载自身,这意味着稍后运行fancyttree核心代码IIFE时它会丢失。

我认为一个解决方案是从jquery.fancytree-all-deps.min.js中包含的jQueryUI代码中删除AMD相关的代码,并使其成为IIFE。

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

@杰克罗塞托您能尝试一下您建议的解决方案吗,即删除jQuery UI包装器,并告诉我们它是否有效?

@杰克罗塞托
复制链接
贡献者

@3月10日确认移除包装器并使其成为接受jQuery作为参数的IIFE(与其他函数一样)是可行的!

不过,我不确定实现此修复的好方法是什么。

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

jQuery UI在构建过程中包括在这里:https://github.com/mar10/fancytree/tree/master/src/jquery-ui-dependencies网站

也许可以对这些文件进行修补以使其正常工作。。。

@杰克罗塞托
复制链接
贡献者

也许可以在Gruntfile.coffee中的级联过程中使用Regex将其剥离。我认为这比仅仅为了在jquery-ui-dependencies中删除它而添加单独的文件要好。

@杰克罗塞托
复制链接
贡献者

我想这应该可以

if/jquery-ui..+。最小.js/.test(fspec)src=src.replace(/\(function.+jQuery\)}\)\((.+\)})\);/,“!$1(jQuery);”)

@杰克罗塞托
复制链接
贡献者

jcrosetto公司 评论2017年10月20日

提出一个带有更改的提取请求。#784

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

@杰克罗塞托谢谢你的贡献!
对不起,我正在并行处理一个分支,没有注意到你的公关。
将合并,因此您将被列为贡献者。
然而,“mapfiles”分支也解决了

  • 为jquery.fancytree-all-deps.js生成源映射文件
  • 默认情况下导入dist/jquery.fancytree-all-deps.min.js
  • 'npm install jquery.fancytree`不再安装不必要的文件(仅dist/folder)
  • 支持Node/CommonJS

如果这对您也适用,您可以试试吗:

$npm安装git://github.com/mar10/fancytree.git#映射文件

@杰克罗塞托
复制链接
贡献者

没问题!我想我最好建立一个公关,因为它很容易(而且我可以很容易地测试它)

能获得它的源代码映射支持真是太棒了。我实际上是通过webjar使用FancyTree的,只需直接引用jquery.FancyTree-all-deps.min.js,而不是通过NPM。

我不确定这是否有帮助,但我可以提取该分支,构建它,然后尝试使用生成的jquery.fancytree-all-deps.min.js。

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

这肯定会有助于测试。如果有帮助:分支的dist/文件夹已经包含最新的构建。

@杰克罗塞托
复制链接
贡献者

拉动该分支并测试了jquery.fancytree-all-deps.min.js和jquery.5.fancyttree-all-deps.js(为了更好地测量)。他们俩都工作得很好!

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

感谢您抽出时间!我将合并分支并用2.25发布

@阿拉瓦
复制链接

阿拉瓦 评论2017年11月8日

嗨,使用nodejs电子应用程序框架,我遇到了同样的问题。
我第一次在linux开发环境中使用fancytree-all-deps,
通过对(按顺序)执行require(),它起到了作用
jquery,
jquery-ui
然后是jquery.fancytree。

现在,我在Mac上移动了我的开发环境,但我无法再加载jquery.fancytree-all-deps(或jquery.fancytrea-all)。
当执行require(“…jquery.fancytree-all”)时,会找到包,但有一个例外:

未捕获错误:找不到模块“jquery.fancytree.ui-deps”

是thown。

如何避开这个例外?
是否在某个地方描述了应该尊重的抽象的所有行动序列。
我应该如何着手提出解决方案,你能提供提示吗?我可以排除问题,并尝试提出解决方案。现在,我尝试向jquery.fancytree-all-deps.js文件添加一些更改,但这是为了尝试加载自身。如果需要,我可以提取最小的用例。

提前发送。

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

@阿拉沃伊你在三个不同的问题上发布了这篇文章3吗?
我认为我们应该处理好#796

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

没有分支或拉请求

4名参与者