小编tru*_*ktr的帖子

我们可以跨多个 <svg> 元素引用 <defs> 的内容吗?

我们可以<svg>从另一个引用包含在一个中的 defs 的内容<svg>吗?

html svg

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

代码如何检测是否在动画帧内运行?

如果某个函数被传递到requestAnimationFrame(),该函数如何检测到它正在动画帧内被调用?

function someFunction() {
  if (/* What goes here? */) {
    console.log('Inside animation frame.')
  }
  else {
    console.log('Not inside animation frame.')
  }
}

// The following lines should not be modified for the answer.
someFunction() // logs "Not inside animation frame."
requestAnimationFrame(someFunction) // eventually logs "Inside animation frame."
Run Code Online (Sandbox Code Playgroud)

最后两行不应修改。我很想知道是否可以检测到这种情况,而不需要用户记住以两种不同的方式使用该功能。最终用户应该像平常一样使用该函数,而不知道我的函数检测到用例。

javascript requestanimationframe

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

在命令行的每次调用中,如何使用Webpack进行增量构建?

当我从命令行运行时webpack,它只是从头开始构建所有内容。我们如何使Webpack跨webpackCLI 调用进行增量构建,以便它仅分析和转译已更改的文件?

我希望此过程无需长时间运行即可在每次调用中webpack使用。

webpack --watch而且webpack-dev-server不是选项,因为它们保持运行,这是我不想要的。

例如,我要运行webpack,它将退出,然后在下次运行时,webpack我希望它很聪明,而不是重新构建所有内容,而只是重新构建更改的文件。

javascript node.js webpack

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

Vim 8的终端模式?

Vim 8是否有终端模式(类似于NeoVim)?我知道Vim 8具有新的异步功能,这使得在Vim中创建异步终端功能成为可能(就像Neovim已经拥有的那样),如果有人已经尝试这样做那么好奇.

vim neovim

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

使 Webpack 别名不适用于 node_modules

我在 webpack.config.js 中创建了一个别名,但我希望该别名仅适用于我的应用程序代码,而不适用于 node_modules。

这是别名:

alias: {
  'jss': path.resolve('path', 'to', 'custom', 'jss')
}
Run Code Online (Sandbox Code Playgroud)

我想要类似于rules(或loaders在 Webpack v1 中)的东西,我们可以在其中编写

exclude: /node_modules/
Run Code Online (Sandbox Code Playgroud)

这样规则/加载器不适用于node_modules。

我们如何使用别名来做到这一点?

例如,里面有一个包node_modulesrequire('jss')我希望它获取实际的jss包,而不是我的自定义模块。

javascript webpack

5
推荐指数
0
解决办法
548
查看次数

这些Webpack v3 ModuleConcatenationPlugin救助邮件意味着什么?

我使用Webpack 3获得此输出,使用ModuleConcatenationPlugin:

  [11] (webpack)/buildin/global.js 509 bytes {0} [built]
       ModuleConcatenation bailout: Module is not an ECMAScript module
  [54] multi ./src/index.js 28 bytes {0} [built]
       ModuleConcatenation bailout: Module is not an ECMAScript module
  [55] ./src/index.js + 33 modules 238 kB {0} [built]
       ModuleConcatenation bailout: Module is referenced from these modules with unsupported syntax: multi ./src/index.js (referenced with single entry)
Run Code Online (Sandbox Code Playgroud)

Webpack自己的文件((webpack)/buildin/global.js)阻止连接?

src/index.js 看起来像这样:

import Calendar from './Calendar'
import DoubleSidedPlane from './DoubleSidedPlane'
import Grid from './Grid'
import Molecule from './Molecule' …
Run Code Online (Sandbox Code Playgroud)

javascript webpack webpack-3

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

TypeScript 永远不会在条件类型中输入不一致匹配?

在下面的代码中,您注意到 的类型Result1never,而 的类型test3[]。我无法理解这一点。考虑到它们都是从 读取never类型,为什么结果不一样MyEvents

type EventArgs<EventTypes, K extends keyof EventTypes> =
    EventTypes[K] extends never /* CHECK NEVER */
        ? []
        : EventTypes[K] extends any[]
            ? EventTypes[K]
            : [EventTypes[K]];

type foo<T> = T extends never /* CHECK NEVER */ ? [] : [boolean]
type Result1 = foo<MyEvents['anotherEvent']> // HERE, type is `never`

type MyEvents = {
    anotherEvent: never // event has no args
}

type Result2 = EventArgs<MyEvents, 'anotherEvent'> …
Run Code Online (Sandbox Code Playgroud)

typescript

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

自定义元素构造函数中延迟的 setAttribute 调用会导致 DOM 错误。这是一个错误吗?

这是一个小提琴,显示 Chrome 72 和 Firefox 63 中控制台中的错误:

https://jsfiddle.net/jr2z1ms3/1/

代码是:

    <script>
    customElements.define('test-element', class extends HTMLElement {
      constructor() {
      	super()
      	Promise.resolve().then(() => {
        	this.setAttribute('foo', 'bar')
        })
      }
    })
    </script>
    <test-element>test</test-element>
Run Code Online (Sandbox Code Playgroud)

在 Chrome 中,错误是:

Uncaught DOMException: Failed to construct 'CustomElement': The result must not have attributes
Run Code Online (Sandbox Code Playgroud)

在 Firefox 中,错误是:

NotSupportedError: Operation is not supported
Run Code Online (Sandbox Code Playgroud)

如果您对调用进行注释setAttribute,则两个浏览器中的错误都会消失。

以下示例说明了在连接元素之前更改属性,这表明可以使用宏任务来完成此操作,但(不公平地)不能使用微任务来完成:

(下面的片段的工作小提琴

Uncaught DOMException: Failed to construct 'CustomElement': The result must not have attributes
Run Code Online (Sandbox Code Playgroud)

在第一个示例中,我没有在构造函数中设置属性,而是推迟到未来的微任务。那么为什么浏览器会抱怨呢?如果这是按照规范设计的,那么该规范是否存在“设计错误”?为什么我们不能这样做呢?

根据下面的答案,我不明白为什么需要实施此限制。无论是否存在浏览器引擎限制,糟糕的开发人员仍然可能造成混乱。

IMO,让开发人员决定(并记录)他们的自定义元素如何工作。

如果我们能够在构造函数中或构造函数之后的微任务中设置属性,是否存在浏览器无法克服的技术限制?

html javascript web-component custom-element

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

我们如何使用 Puppeteer 编写/自动化一个 Electron 应用程序?

是否可以?某处有指南吗?基本上,我想对 Electron 应用程序进行 E2E 测试,并将编写用户交互脚本,即创建一个在 Electron 应用程序内部交互的“机器人”或“傀儡”用户。

javascript automation e2e-testing electron puppeteer

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

TypeScript 是否有 bug?声明仅在以某些格式编写时才有效

.d.ts声明文件中,我尝试以四种不同的方式做同样的事情,但只有其中两种有效:

// Doesn't work.
declare global {
    const THREE: typeof import('three')
}

// Doesn't work.
import * as _THREE from 'three'
declare const THREE: typeof _THREE

// Works.
import * as _THREE from 'three'
declare global {
    const THREE: typeof _THREE
}

// Works.
declare const THREE: typeof import('three')
Run Code Online (Sandbox Code Playgroud)

'three'模块包含export namespace THREE.

在前两种情况下,其他.ts文件用作THREE全局时会出现错误'THREE' refers to a UMD global, but the current file is a module. Consider adding an import …

type-declaration typescript

5
推荐指数
2
解决办法
1207
查看次数