小编mac*_*ost的帖子

为什么(以及如何使用FIx)ESLint导入/无外来依赖性安装包上的失败?

当我运行ESLint时,我收到以下错误:

1:13  error  'joi' should be listed in the project's dependencies. Run 'npm i -S joi' to add it        import/no-extraneous-dependencies
2:16  error  'lodash' should be listed in the project's dependencies. Run 'npm i -S lodash' to add it  import/no-extraneous-dependencies
Run Code Online (Sandbox Code Playgroud)

但是,我安装了这两个模块并在我的package.json:

"joi": "^10.4.2",
// Some other packages
"lodash": "^4.17.2",
Run Code Online (Sandbox Code Playgroud)

和运行:

npm i -S joi
Run Code Online (Sandbox Code Playgroud)

没有帮助或解决问题.我也有很多其他包package.json,只有这两个包有问题.这可能是一个错误,但ESLint有很多眼睛,我认为我更有可能做错了什么...只是我无法弄清楚是什么(这些包看起来和其他任何一个一样我的package.json).

任何人都可以建议我(无意中)做出关于这两个软件包的ESLint投诉,只有那两个软件包,尽管它们被安装了吗?

编辑

这是我的package.json(删除了一些不相关的标识位):

{
  "name": "foo",
  "version": "1.0.0",
  "engines": {
    "node": "6.9.4"
  },
  "scripts": {
    "some": "scripts",
  }, …
Run Code Online (Sandbox Code Playgroud)

eslint package.json

19
推荐指数
9
解决办法
1万
查看次数

为什么不把Javascript事件委托带到极致?

到目前为止,该网站上的大多数人可能都知道:

$("#someTable TD.foo").click(function(){
    $(e.target).doSomething();
});
Run Code Online (Sandbox Code Playgroud)

将会比以下情况更糟糕:

$("#someTable").click(function(){
    if (!$(e.target).is("TD.foo")) return;
    $(e.target).doSomething();
});
Run Code Online (Sandbox Code Playgroud)

现在有多糟糕将取决于你的桌子有多少TD,但只要你有至少几个TD,这个一般原则应该适用.(注意:当然,聪明的事情是使用jQuery委托而不是上面的代码,但我只是试图用明显的区别来做一个例子).

无论如何,我向同事解释了这个原则,他们的回答是"嗯,对于站点范围的组件(例如,日期选择INPUT),为什么停在那里?为什么不将每种类型的组件的一个处理程序绑定到身体本身?" 我没有一个好的答案.

显然使用委托策略意味着重新思考如何阻止事件,这是一个缺点.此外,假设你有一个页面,你有一个"TD.foo",不应该有一个事件连接到它.但是,如果您理解并愿意解决事件冒泡变化,并且如果您执行"如果您将.foo放在TD上,它始终会将事件连接起来"的策略,那么这些似乎都不是很重要.

我觉得我必须遗漏一些东西,所以我的问题是:将所有站点范围的组件的所有事件委托给BODY还有其他任何缺点(而不是直接将它们绑定到所涉及的HTML元素,或委托它们)到非BODY父元素)?

javascript javascript-events

18
推荐指数
1
解决办法
2365
查看次数

什么是crossdomain.xml文件?

其实我希望我知道从哪里开始......

我在我的个人网站上嵌入了第三方SWF图像库控件.

SWF是XML驱动的.我动态加载XML文件如下....

  var flashvars = { xmlPath: "http://www.example.com/xml.aspx" };
                var params = { allowFullScreen: "true", wmode: "transparent", allowScriptAccess: "always"};
                var attributes = {};
                swfobject.embedSWF("main.swf", "gallery", "100%", "100%", "9.0.0", "expressInstall.swf", flashvars, params, attributes);
Run Code Online (Sandbox Code Playgroud)

问题是页面没有按预期工作.实际上它只适用于Firefox,而不适用于Chrome或IE

用fiddler检查请求后,我发现找不到文件crossdomain.xml.所以,stackoverflow帮助我找到了一个样本......

<?xml version="1.0" ?>
<cross-domain-policy>
  <site-control permitted-cross-domain-policies="master-only"/>
  <allow-access-from domain="*"/>
  <allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>
Run Code Online (Sandbox Code Playgroud)

添加crossdomain.xml后,网页现在可以在Firefox和IE浏览器中使用在Chrome中我仍然有问题.

所以这里有几个问题......

1)什么是crossdomain.xml?

2)如何让我的网页也能在Chrome中运行?

asp.net flash swfobject crossdomain.xml cross-domain

17
推荐指数
2
解决办法
4万
查看次数

在Backbone的嵌套集合中监听模型中的特定属性更改

我有以下主干结构:

- collection[order_items]
   - collection[menu_items]
        - price
        - quantity
Run Code Online (Sandbox Code Playgroud)

我想听听数量属性的任何变化,我得到它的工作

var CheckoutView = Backbone.Marionette.ItemView.extend({

    template: '#template-checkout',

    initialize: function (options) {
        this.order_collection = options.collection;
        _(this.order_collection.models).each(function (element, index, list) {
            this.listenTo(element.get("menu_items"), "change:quantity", this.onOrderItemsChanged);
        }, this);

    },

    onOrderItemsChanged: function (model, val, options) {
        console.log(model.get("name"));
    }

});
Run Code Online (Sandbox Code Playgroud)

但牵线木偶或骨干网有更好的方法,而不是循环访问父集合并将监听器添加到每个子集合,可能类似于

this.listenTo(this.order_collection, "change:menu_items:quantity", this.on OrderItemsChanged)

(这对我没用)

backbone.js marionette

17
推荐指数
1
解决办法
1万
查看次数

提取/读取React propTypes

我想直观地测试React组件.用户可以使用表单更改组件的道具.我希望能够(例如)<select>基于渲染React.PropTypes.oneOf(['green', 'blue', 'yellow']).

当我读到MyComponent.propTypes它时,返回由React定义的函数.有没有办法提取/读取道具类型?

reactjs react-proptypes

17
推荐指数
1
解决办法
1761
查看次数

Live use是否"使用严格"安全?

"严格使用"; 看起来很棒,我们真的很想在我们的商店使用它.但是,我们只是想要它,以便我们(开发人员)可以找到严格性问题; 我们非常不希望我们的实际客户在以前工作正常的时候让我们的网站中断.

现在,我们可以使用一些服务器端逻辑来实现这一点:

{% if debug %}<script>"use strict";</script>{% endif %}
Run Code Online (Sandbox Code Playgroud)

...除了"use strict"在逐个文件的基础上运行,因此实际上不会工作(好吧,除非我们启动服务器端处理我们所有的JS文件).

所以,我的问题是:在页面加载时执行所有"使用严格"检查以获取检查,或者在页面加载后"use strict"是否可以找到错误? 如果它是前者,我们可以使用"use strict"并停止担心,因为我们会在开发之前加载我们的网站,然后再加载它.但是,如果是后者,我们似乎运气不好,因为我们无法测试每个可能的运行时条件(同样,我们不希望在之前没有错误时为我们的用户制造错误).

javascript use-strict

16
推荐指数
2
解决办法
2058
查看次数

你如何调试SugarCRM问题/了解SugarCRM如何工作?

我正在尝试将我们的公司从SalesForce转移到SugarCRM,但我遇到了一个讨厌的错误(当我向Accounts添加一个自定义字段时,所有帐户都停止显示).我们已经从SugarCRM人员那里获得了支持,但是他们只对开源版本提供了永远然后获得无价值的响应级技术支持(我们避免使用像瘟疫这样的专有软件).哦,我是否提到我们的Salesforce合同在本周末到期了?

所以,长话短说,我自己调试了SugarCRM应用程序.我是一个经验丰富的程序员,我有基本的PHP能力,但我甚至不知道在哪里尝试解决这个问题.那里的Sugar开发人员可以推荐任何调试Sugar的过程吗?是否有任何资源可以帮助我理解不同的PHP文件的作用,或者Sugar系统的整体运作方式?

就像我正在谈论的那种事情的一个例子:我想出了如何获得糖来打印堆栈跟踪,并通过以下几个我注意到一个涉及所有问题行的模式

$this->_tpl_vars
我想尝试弄清楚为什么那个方法调用不起作用,但我不知道:

A)_tpl_vars应该做什么
B)在哪里_tpl_vars定义
C)$this应该是什么
D)框架中$this的设置
等等

因此,如果有人可以帮助解释我将如何/在哪里开始寻找这些问题的答案,我将非常感激.

php sugarcrm

15
推荐指数
3
解决办法
8613
查看次数

Next.js 刷新后获取 JS 资源时出现 404 错误

我正在运行 Next.js 开发服务器。当我转到第 1 页,然后单击第 2 页的链接时,效果很好。(澄清一下,我没有使用asNext<Link>标签的属性,只是使用常规的旧href。)

但是,如果我刷新第 2 页,页面本身会加载,所有图像也会加载......但所有 Javascript 文件都会失败并显示 404:

http://localhost:3000/page2/_next/static/chunks/main.js?ts=1612664646023 net::ERR_ABORTED 404(未找到)2localhost/:196 GET

http://localhost:3000/page2/_next/static/development/_buildManifest.js?ts=1612664646023 net::ERR_ABORTED 404(未找到)2localhost/:1 GET

http://localhost:3000/page2/_next/static/chunks/webpack.js?ts=1612664646023 net::ERR_ABORTED 404(未找到)7localhost/:196 GET

http://localhost:3000/page2/_next/static/chunks/main.js?ts=1612664646023 net::ERR_ABORTED 404(未找到)

有谁知道我能做什么来解决这个问题?

next.js

15
推荐指数
1
解决办法
5万
查看次数

如何在多个Eclipse Windows之间切换(在"分屏"模式下)

Eclipse允许您一次打开多个文本编辑"窗口"以获得"分屏"效果.这是伟大的,但我遇到的问题是,有不似乎是任何方式将这些窗口之间切换,直接.

现在,可以使用通常的命令(Ctrl+ Page Down,CTRL+ e,ALT+RIGHT等),以特定的缓冲器之间切换.换句话说,如果我打开带有A.java和B.java的窗口1,打开带有C.java的窗口2,我可以使用Ctrl+ Page Down从A到B,再到C.但是,我不能只是从A或B(即从窗口1)进入C(即到窗口2),除非我使用CTRL+ e并输入"C.java".

虽然有50万个Eclipse命令,但它们肯定不是一致的标记,所以很可能我只是找不到相关的命令.在SO-land那里有人碰巧知道吗?

eclipse keyboard-shortcuts

14
推荐指数
3
解决办法
1万
查看次数

为什么我不能在元素标记中包含JSX注释?

我遵循将多属性标签分解为多行的常见模式,例如.

<div
  className="foo"
  style={{ fontWeight: "bold" }}
/>
Run Code Online (Sandbox Code Playgroud)

我想在声明中添加一条评论,例如.

<div
  className="foo"
  {/* This is only temporary */}
  style={{ fontWeight: "bold" }}
/>
Run Code Online (Sandbox Code Playgroud)

但是上面的语法不起作用; 我明白了:

SyntaxError: Unexpected token, expected ... (45:96)
Run Code Online (Sandbox Code Playgroud)

(指着收盘}temporary */})是否可以添加注释标签内的JSX,如果是这样,我应该使用什么语法?

reactjs react-jsx

14
推荐指数
2
解决办法
1687
查看次数