小编Jon*_*ink的帖子

PhantomJS错误处理

我很难理解PhantomJS如何处理错误.

我有一个本地安装的Apache服务器运行(xampp),当我手动访问" http:// localhost / "时,我得到"It Works!" 页.

作为测试,我写了一个小文件(称为forceError.js),故意导致未经检查的异常:

var page = require('webpage').create(),
    url = 'http://localhost/';

page.onError = function(msg, trace) {
  console.log("page.onError");
  var msgStack = ['ERROR: ' + msg];
  if (trace && trace.length) {
    msgStack.push('TRACE:');
    trace.forEach(function(t) {
      msgStack.push(' -> ' + t.file + ': ' + t.line + (t.function ? ' (in function "' + t.function +'")' : ''));
    });
  }
  console.error(msgStack.join('\n'));
};

phantom.onError = function(msg, trace) {
  console.log("phantom.onError");
  var msgStack = ['PHANTOM ERROR: ' + msg];
  if (trace && …
Run Code Online (Sandbox Code Playgroud)

javascript exception-handling phantomjs

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

使用 Rollup 和 scss 动态注入每个组件的样式标签

我正在构建一个 React 组件库,其源代码采用以下通用结构:

- src
  - common.scss (contains things like re-usable css variables)
  - components
    - button
      - index.js
      - button.scss
    - dialog
      - index.js
      - dialog.scss
Run Code Online (Sandbox Code Playgroud)

我的组件负责导入它们自己的每个组件样式(使用 scss),例如,button/index.js有这样一行:

import "./button.scss";
Run Code Online (Sandbox Code Playgroud)

到目前为止,在我的应用程序中,我一直在直接从源中使用我的库,如下所示:

// app.js
import "mylib/src/common.scss" // load global styles
import Button from 'mylib/src/components/button/index.js'
import Dialog from 'mylib/src/components/dialog/index.js'

// ...application code...
Run Code Online (Sandbox Code Playgroud)

当我的应用程序使用 webpack 和 时style-loader,每个组件的 css 会stylehead首次使用该组件时作为标签动态添加。这是一个很好的性能优势,因为在实际需要之前,浏览器不需要解析每个组件的样式。

不过,现在我想使用Rollup分发我的库,因此应用程序使用者会执行以下操作:

import { Button, Dialog } from 'mylib'
import "mylib/common.css" // load global …
Run Code Online (Sandbox Code Playgroud)

javascript sass reactjs rollupjs

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

如何通过子树合并将git存储库与子模块合并到另一个子模块中?

我有一个dotfiles存储库.我想将另一个与子模块(prezto)合并到其中,因此我可以方便地将所有内容放在一个存储库中,而不会出现子模块的不便.

我怎样才能将prezto与其所有子模块合并到我的dotfiles存储库中?

我可以使用子模块,我可以使用"老式"方式或使用较新的git子树工具拆分和合并子树.

我只是不知道如何做这个具体案例.

git merge git-submodules git-subtree pretzo

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

Promise.resolve没有传入任何参数

OpenUI5代码库中,我遇到了这个代码段:

// Wait until everything is rendered (parent height!) before reading/updating sizes.
// Use a promise to make sure
// to be executed before timeouts may be executed.
Promise.resolve().then(this._updateTableSizes.bind(this, true));
Run Code Online (Sandbox Code Playgroud)

看起来正在使用本机Promise函数,没有参数传递给它的resolve函数,它接受:

这个承诺要解决的争论.也可以是Promise或者是一个可以解决的问题.

所以,既然看起来承诺会立即解决并调用then回调,也许意图类似于:

var self = this;
setTimeout(function() {
    self._updateTableSizes.bind(self, true)
}, 0);
Run Code Online (Sandbox Code Playgroud)

...基本上,释放JavaScript运行时事件循环来完成其他事情(比如渲染)然后回到回调?

我的问题是:

这是一种常见的模式吗?最佳实践?两种方法都有任何优点/缺点吗?

javascript settimeout promise sapui5 es6-promise

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

反应测试库和 onAnimationEnd

给定一个具有一些 CSS 动画(例如滑入/滑出)的组件:

function MyComponent(props) {
  return (
    <div
      className="with-animations"
      onAnimationEnd={() => {
        // set internal state
        // logic which needs coverage
      }}
    >
      {props.children}
    </div>
  );
}
Run Code Online (Sandbox Code Playgroud)

如何验证onAnimationEnd事件处理程序中的代码是否已被调用?

有没有办法模拟这个?

css-animations reactjs react-testing-library

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

用管道命令解决git冲突

我正在尝试编写一些git操作,其中涉及一些变基/挑选/等等.

有没有办法解决冲突,而无需运行如下命令:

git rebase --continue
git cherry-pick --continue
git merge --continue
Run Code Online (Sandbox Code Playgroud)

当git想要提交消息时,我试图避免编辑器被执行.

也许有一种方法可以告诉git事情已经解决并在需要时传入默认提交消息?

git

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

如何在CSS中创建向下/向上箭头

如何在css中创建向下/向上的箭头点?

我试图从div构建它:

.triangle_down {
    width: 0;
    height: 0;
    border-left: 15px solid transparent;
    border-right: 15px solid transparent;
    border-top: 15px solid #2f2f2f;
    font-size: 0;
    line-height: 0;
    float: left;
}
Run Code Online (Sandbox Code Playgroud)

这是结果:在此输入图像描述.

但我试图建立这样的东西:在此输入图像描述

有什么建议?

html javascript css jquery

8
推荐指数
4
解决办法
1325
查看次数

为什么 webpack 在使用“import * as _”时不摇树 lodash?

我正在使用使用 Lodash 的 webpack 4/React 应用程序学习摇树。

起初,我的 Lodash 用法是这样的:

import * as _ from "lodash";
_.random(...
Run Code Online (Sandbox Code Playgroud)

我很快通过 BundleAnalyzerPlugin 了解到,整个 Lodash 都包含在开发和生产版本中(527MB)。

经过google搜索周围,我意识到,我需要使用特定的语法:

import random from "lodash/random";
random(...
Run Code Online (Sandbox Code Playgroud)

现在,只有random它的依赖项正确地包含在包中,但我仍然有点困惑。

如果我需要在我的import语句中明确指定函数,那么 tree-shaking 实际扮演了什么角色?在比较开发和生产模式构建时,BundleAnalyzerPlugin 没有显示有效负载大小的差异(这两者都是正确的小尺寸,但我认为摇树仅发生在生产构建中?)。

我的印象是 TreeShaking 会执行某种静态代码分析,以确定实际使用了哪些代码部分(可能基于功能?)并剪掉未使用的位。

为什么我们不能总是只*在我们的中使用import并依靠 TreeShaking 来找出实际包含在包中的内容?

如果有帮助,这是我的webpack.config.js

const path = require("path");
const BundleAnalyzerPlugin = require("webpack-bundle-analyzer").BundleAnalyzerPlugin;

module.exports = {
  entry: {
    app: ["babel-polyfill", "./src/index.js"]
  },
  plugins: [
    new BundleAnalyzerPlugin({
      analyzerMode: "static",
      openAnalyzer: false
    })
  ],
  devtool: "source-map", …
Run Code Online (Sandbox Code Playgroud)

javascript lodash webpack es6-modules tree-shaking

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

如何在Unite.vim中导航结果(候选人)?

搜索后unite.vim,您打开一个候选人.是否有一种简单的方法可以跳转到下一个而无需再次运行搜索命令?类似的插件(ack.vim,git-grep)使用quickfix窗口,因此您可以键入:cn:cp跳转到下一个/上一个结果.有类似的东西unite.vim吗?

谢谢!

vim unite.vim

6
推荐指数
2
解决办法
1530
查看次数

Vim逃亡:Gblame reblame选项

我最近一直在使用Fugitive的Gblame,但不太明白"reblame"的作用.

有人可以更清楚地描述这些选项的作用:

 -     reblame at commit
 ~     reblame at [count]th first grandparent
 P     reblame at [count]th parent (like HEAD^[count])
Run Code Online (Sandbox Code Playgroud)

git vim vim-fugitive git-blame

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