我很难理解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) 我正在构建一个 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 会style在head首次使用该组件时作为标签动态添加。这是一个很好的性能优势,因为在实际需要之前,浏览器不需要解析每个组件的样式。
不过,现在我想使用Rollup分发我的库,因此应用程序使用者会执行以下操作:
import { Button, Dialog } from 'mylib'
import "mylib/common.css" // load global …Run Code Online (Sandbox Code Playgroud) 我有一个dotfiles存储库.我想将另一个与子模块(prezto)合并到其中,因此我可以方便地将所有内容放在一个存储库中,而不会出现子模块的不便.
我怎样才能将prezto与其所有子模块合并到我的dotfiles存储库中?
我可以使用子模块,我可以使用"老式"方式或使用较新的git子树工具拆分和合并子树.
我只是不知道如何做这个具体案例.
在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运行时事件循环来完成其他事情(比如渲染)然后回到回调?
我的问题是:
这是一种常见的模式吗?最佳实践?两种方法都有任何优点/缺点吗?
给定一个具有一些 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事件处理程序中的代码是否已被调用?
有没有办法模拟这个?
我正在尝试编写一些git操作,其中涉及一些变基/挑选/等等.
有没有办法解决冲突,而无需运行如下命令:
git rebase --continue
git cherry-pick --continue
git merge --continue
Run Code Online (Sandbox Code Playgroud)
当git想要提交消息时,我试图避免编辑器被执行.
也许有一种方法可以告诉git事情已经解决并在需要时传入默认提交消息?
如何在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)
有什么建议?
我正在使用使用 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) 搜索后unite.vim,您打开一个候选人.是否有一种简单的方法可以跳转到下一个而无需再次运行搜索命令?类似的插件(ack.vim,git-grep)使用quickfix窗口,因此您可以键入:cn并:cp跳转到下一个/上一个结果.有类似的东西unite.vim吗?
谢谢!
我最近一直在使用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) javascript ×5
git ×3
reactjs ×2
vim ×2
css ×1
es6-modules ×1
es6-promise ×1
git-blame ×1
git-subtree ×1
html ×1
jquery ×1
lodash ×1
merge ×1
phantomjs ×1
pretzo ×1
promise ×1
rollupjs ×1
sapui5 ×1
sass ×1
settimeout ×1
tree-shaking ×1
unite.vim ×1
vim-fugitive ×1
webpack ×1