小编mac*_*ost的帖子

无法安装babel插件`transform-es2015-destructuring`

我正在尝试transform-es2015-destructuring在我的Mocha测试中使用Babel插件,但我遇到了问题:

$ node_modules/mocha/bin/mocha --compilers js:babel-core/register test/testMain.js
/home/my/project/node_modules/babel-core/lib/transformation/file/options/option-manager.js:313
          throw new Error("Couldn't find preset " + (0, _stringify2.default)(val) + " relative to directory " + (0, _stringify2.default)(dirname));
          ^

Error: Couldn't find preset "transform-es2015-destructuring" relative to directory "/home/my/project"
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试安装插件时,一切正常:

$ npm install babel-plugin-transform-es2015-destructuring
myproject-reactjs@1.8.1 /home/my/project
??? babel-plugin-transform-es2015-destructuring@6.9.0 
Run Code Online (Sandbox Code Playgroud)

如果我直接使用Babel,我会遇到同样的问题:

./node_modules/babel-cli/bin/babel.js --plugins transform-es2015-destructuring test/testMain.js 
Error: Couldn't find preset "transform-es2015-destructuring" relative to directory "/home/my/project"
Run Code Online (Sandbox Code Playgroud)

换句话说,NPM告诉我我有插件,但Babel告诉我我没有.我很想相信NPM是正确的,但如果它是我无法弄清楚为什么Babel找不到(明确安装的)转换包.

这是我的.babelrc:

{
  "presets": [
    "es2015",
    "react",
    "transform-es2015-destructuring",
    "transform-object-rest-spread"
  ]
}
Run Code Online (Sandbox Code Playgroud)

这是我dependencies参赛作品的相关部分package.json:

"babel": "^6.5.2", …
Run Code Online (Sandbox Code Playgroud)

babel node.js npm

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

Redux:我如何让两个Reducer以特定顺序响应同一个动作?

我对Redux比较新,我有以下情况:

  1. 我的应用程序发出一个AJAX请求,从服务器获取第一个"消息"对象
  2. 响应回来并发送 {type: 'RECEIVE_FIRST_MESSAGE', message}
  3. 我的MessageReducer处理方式RECEIVE_FIRST_MESSAGE是:

    A)加入action.messagestate.messages

    B)进行另一次AJAX调用以获取下一条消息(如果action.message.hasNextMessage)

  4. SessionReducerRECEIVE_FIRST_MESSAGE通过添加action.message.sessionId来处理state.session.id

只有一个问题:当我获取第二条消息时,我需要使用sessionId我从第一条消息中获取的消息.但是因为MessageReducer之前运行SessionReducer,会话ID不是在MessageReducer尝试发出第二个AJAX请求时的状态.

我可以通过使用超时来"解决"这个问题,以确保MessageReducer在1毫秒之后不再发出第二个请求,但这感觉就像一个黑客/反模式.

TLDR

当我有:

  • 具有两部分数据的动作state(由两个不同的减速器处理)
  • 我想从reducer A触发响应的AJAX调用
  • 我想state.session.id从reducer B中添加一些state()作为响应

如何在减速器A进行AJAX调用之前确保减速器B添加状态(以不会让Dan Abramov哭的方式)?

redux

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

CSS:为什么 Chrome(在 Linux 上)会忽略我的字体系列?

当我使用 Chrome 开发人员工具检查我网站上的元素时,我将以下内容视为元素的“计算”样式:

font-family: "HelveticaNeue-Medium", "Helvetica Neue Medium", "Helvetica Neue", Helvetica, "Roboto", Arial, "Lucida Grande", sans-serif
Run Code Online (Sandbox Code Playgroud)

但是,如果我进一步向下滚动(到“计算”选项卡的底部),我会看到:

Rendered Fonts
Liberation Sans—Local file(11 glyphs)
Run Code Online (Sandbox Code Playgroud)

由于我的(Linux)操作系统必须Arialsans-serif,我很困惑为什么 Chrome 会选择“Liberation Sans”:它甚至不在我的font-family列表中。

我会责怪我自己的糟糕 CSS,但理论上“计算”选项卡显示了我的规则的最终/处理版本,所以无论我的原始 CSS 多么糟糕,Chrome 清楚地看到我的font-family列表已定义(并被应用)到我的元素......它只是忽略它。

谁能解释这个谜?

编辑: 我安装了一个字体检查程序,结果证明 Linux (Mint) 实际上并没有带有Arialorsans-serif字体……但即便如此,我认为浏览器提供了(至少)一种基本sans-serif字体,无论是什么操作系统?那不正确吗?

css font-family

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

是什么让 Express-Session 决定开始新的会话?

我遇到了一个问题,我的代码中的一个地方(身份验证部分)在会话中放置了一些东西,而代码中的另一个地方试图访问它(我的 GraphQL API 部分)。问题是,当第二部分试图获取数据时,它并不存在。

当我登录时,request.session.id我可以清楚地看到核心问题:在两个请求之间,会话本身发生了变化。身份验证请求发生,并将数据放入会话 A,但是当 graphQL 代码访问时,request.session它获取会话 B,但没有数据。

但是,这不是“请为我调试我的代码”请求。相反,我只想了解该库的工作原理,以便我可以自行调试。

任何人都可以解释一下如何/为什么express-session决定(大概是在获得新请求时)它应该放弃旧会话并开始一个新会话吗?从我读过的内容来看,它可能与我的域设置有关,但我尝试使用那些没有成功的方法,实际上我只是想了解该库的工作原理,特别是在决定重新使用会话或生成一个新的。

javascript session express express-session

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

无法输入(通过 JSDoc)样式化的组件属性

我正在使用 Visual Studio Code 的类型检查 Javascript功能。对于那些不熟悉的人来说,这可以实现推断类型,因此您可以享受在 VS Code 中键入的许多好处,而无需编写类型。

不幸的是,样式化组件库中基于模板标签的组件存在问题。如果我有一个像这样的组件:

const ProductImage = styled.div`
  background-image: url("${props => props.imagePath}");
`;
Run Code Online (Sandbox Code Playgroud)

imagePathVS Code 在(但不是)下方添加了一条波浪线警告线props.,因为 Typescript 无法推断 props 参数的类型。

据我了解, Typescript 还可以从 JSDoc 获取类型,所以我尝试添加:

/**
 * @param {String} [props.imagePath]
 * @param {String} [props.alignRight]
 */
 const ProductImage = styled.div`
  background-image: url("${props => props.imagePath}");
  float: ${props => (props.alignRight ? `left` : `right`)}};
`;
Run Code Online (Sandbox Code Playgroud)

...但这不起作用。

我没有tsconfig.js,但为了启用 JSDoc 键入,我尝试将以下内容添加到我的jsconfig.js

// Generate d.ts files
"declaration": true,
// …
Run Code Online (Sandbox Code Playgroud)

jsdoc typescript styled-components

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

Facebook Messenger API:快速回复有效负载有什么作用?

如果我发送Facebook快速回复JSON,如下所示:

"quick_replies":[
    {"content_type":"text","payload":"RED","title":"Red"},
    {"content_type":"text","payload":"BLUE","title":"Blue"},
    {"content_type":"text","payload":"GREEN","title":"Special"},
]
Run Code Online (Sandbox Code Playgroud)

并且用户选择"特殊"回复,我回来了

{"recipient_id":5555,"text":"Special"}
Run Code Online (Sandbox Code Playgroud)

我认为有效载荷字段的重点是提供一个除了标题之外的值,它将被发送回去,但似乎Facebook只是发送了所选答复的标题,这引出了一个问题......有什么意义呢?有效载荷场?

facebook-messenger

0
推荐指数
1
解决办法
2519
查看次数

如何在不删除 Ava 的情况下使用 Mocha?

我的一位同事将这个Ava包添加到我们的设置中,它完成了我以前从未见过 Node 包所做的事情:干扰其他包!现在,当我尝试运行 Mocha 时,我得到:

$ node_modules/mocha/bin/mocha test/
Test files must be run with the AVA CLI:

    $ ava node_modules/mocha/bin/_mocha
Run Code Online (Sandbox Code Playgroud)

我知道 Ava 想运行我的 Mocha 测试,但如果我想要,我ava mocha不会运行mocha. 并且因为同事正在使用它,我不能简单地卸载该软件包。

有什么办法可以在安装了 Ava 的机器上运行普通的 Mocha 测试?

javascript mocha.js ava

0
推荐指数
1
解决办法
288
查看次数

内含 HTML 内容(例如图像)的纯 CSS 内联“工具提示”是否可行?

Stack Overflow 上有很多工具提示解决方案,即。当用户将鼠标悬停在某些其他文本上时显示某些文本或 HTML 的方法。然而,我似乎找不到一个:

  • 是纯HTML + CSS
  • 允许工具提示内联(例如,不需要一个<div>或其他块元素)
  • 允许 HTML 工具提示内容(可能带有display:block

这些要求来自于想要提供内联、文本段落内术语的定义,并且我希望这些定义能够包含块显示 HTML 内容(例如段落和图像)。

我发现的大多数纯 CSS 解决方案似乎都是通过将“工具提示”定义嵌套在悬停目标的 HTML 中来工作的。但是,如果您希望该术语是内联的,但其定义是块,则这是不可能的,因为您必须在内联标记内嵌套块内容。

我是否可以使用任何其他方法,让我将段落内的单词或短语作为“悬停目标”,然后在发生这种情况时显示 HTML 悬停定义......无需 Javascript?

html css tooltip

0
推荐指数
1
解决办法
1991
查看次数

谁能指出我(或发布)每个HTML标签的数组

我为此尝试了Google,但是(令人惊讶地)找不到它。谁能指出我每个HTML标签的数组(使用Javascript语法)?我需要这个,因为我有一个图书馆,希望我将我想要的每个标签都列入白名单(并且我想要所有标签)。

因此,换句话说,数组将类似于:

var htmlTags = ['a', 'base', 'br', ...]
Run Code Online (Sandbox Code Playgroud)

*潜在关闭者的速记*

尽管此问题确实要求引用资源,但并不是在请求“收藏夹外资源”;实际上,答案中包含了全部资源。我确实相信此数组将来可能对其他人有用,因此请考虑不要关闭此问题(据我所知,它不符合“脱离主题”的条件),并将此HTML标签数组留给其他人使用寻找未来。如果找不到我,也没有任何评论者/答复者,那么显然这不是网络上已经存在的资源。

html javascript arrays tags

-4
推荐指数
1
解决办法
137
查看次数