自从我第一次dist/在许多开源项目中看到一个目录,通常是在GitHub上,我一直在想它意味着什么.(我是外国人,没有英文原生)
随着dist,vendor,lib,src,和我们经常看到很多其他的文件夹名称,我有时想,我应该怎样命名我自己的文件夹.
如我错了请纠正我!
vendor实际上非常接近,取决于我们可以看到一个或另一个或两者的项目......为什么开源如此令人困惑?是不是可以更清楚地做事情?至少每种语言,因为某些语言使用特定的名称.
我希望节省我的时间,并在扩展PIXI类(2d webGl渲染器库)的类之间重用公共代码.
对象接口:
module Game.Core {
export interface IObject {}
export interface IManagedObject extends IObject{
getKeyInManager(key: string): string;
setKeyInManager(key: string): IObject;
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是里面的代码getKeyInManager并且setKeyInManager不会改变,我想重用它,而不是复制它,这里是实现:
export class ObjectThatShouldAlsoBeExtended{
private _keyInManager: string;
public getKeyInManager(key: string): string{
return this._keyInManager;
}
public setKeyInManager(key: string): DisplayObject{
this._keyInManager = key;
return this;
}
}
Run Code Online (Sandbox Code Playgroud)
我想要做的是通过a自动添加Manager.add()管理器中使用的键,以在其属性中引用对象本身内的对象_keyInManager.
那么,让我们以纹理为例.这就是了TextureManager
module Game.Managers {
export class TextureManager extends Game.Managers.Manager {
public createFromLocalImage(name: string, relativePath: string): Game.Core.Texture{
return this.add(name, Game.Core.Texture.fromImage("/" + …Run Code Online (Sandbox Code Playgroud) 在我的一个无状态功能组件中设置默认值时,我刚刚遇到了关于React性能的问题.
这个组件有一个defaultProps定义的row: false,但我不喜欢它,因为defaultProps它位于文件的末尾,这实际上使它更难看.因此,我们不知道默认属性.所以我直接将它移动到函数声明中,并使用参数的ES6默认值进行分配.
const FormField = ({
row = false,
...others,
}) => {
// logic...
};
Run Code Online (Sandbox Code Playgroud)
但后来我们与一位同事争论这是一个好主意.因为这样做可能看起来微不足道,但也可能对性能产生很大影响,因为反应不知道默认值.
我相信在这种情况下,它是微不足道的.因为它是布尔值而不是对象/数组,因此在对帐期间不会被视为不同的值.
但是,让我们现在看一个更高级的用例:
const FormField = ({
input: { name, value, ...inputRest },
label = capitalize(name),
placeholder = label,
row = false,
meta: { touched, error, warning },
...others,
}) => {
// logic...
};
Run Code Online (Sandbox Code Playgroud)
在这里,我基于placeholderfrom 的值label,它本身就是基于的input.name.使用ES6解构和参数的默认值使整个事情很容易编写/理解,它就像一个魅力. …
我不明白ambient下面这句话的意思是什么:
无法在环境上下文中声明函数实现.
我不太明白这个词的一般含义,(英语不是我的母语),如果这里有特定含义,我也不理解.
我试图用我的母语来理解,但在这种情况下却无法理解.这就像current context我说的那样,但它没有成功.
出现这个消息是因为我正在尝试declare一个无法声明的类,只能module这样做.我已修复它但仍然不理解错误消息的含义.
我想在我的sails.js应用程序中用mongoose替换水线.我正在寻找正确的方法来做到这一点,但我没有看到文档中的内容.任何人都可以解释如何做到这一点?
我正在尝试将一个事件从我传播window.document到本文档中的iframe.
在window.document我捕捉事件时,我尝试以下方法:
event.preventDefault()
(@dispatchTo()).dispatchEvent(event)
# @dispatchTo() returns the reference of `document.querySelector('iframe').contentDocument`
Run Code Online (Sandbox Code Playgroud)
但我明白了 InvalidStateError: Failed to execute 'dispatchEvent' on 'EventTarget': The event is already being dispatched.
我尝试了preventDefault,stopPropagation但没有人会工作.当我尝试将它发送到iframe文档并且失败时,似乎正在调度该事件.
如何在从iframe中捕获事件时将事件传播到我的iframe window.document?
我在该事件的iframe上有另一个eventListener,但它没有被触发.
我使用React(它有一个虚拟DOM,它可能会干扰,它可能不会,只是说).
我在那里找到了解决方案:https://stackoverflow.com/a/20541207/2391795
现在我可以使用以下代码将事件从文档分发到iframe:
eventClone = new event.constructor(event.type, event)
(@dispatchTo()).dispatchEvent(eventClone)
Run Code Online (Sandbox Code Playgroud)
但由于我正在使用React,因此克隆事件不等于初始事件,因为React有一种事件包装器.所以我失去许多特性,如which和isTrusted,成为false一次克隆.
有没有办法正确克隆React事件?
我想知道它是如何git push工作的.我在代理后面,甚至在我的PhpStorm软件中配置它也行不通.
所以,我想知道它是如何通过网络发送的,我想使用端口80用于HTTP,443用于HTTPS.
我在SO上阅读了一堆线程,但无法弄清楚那里有什么问题.我猜"我的"代理没有启用WebDAV,如下所述:无法通过代理推送到github
但我想知道是否还有其他任何问题可以解决问题的根源,知道所有端口都已关闭,除了80,22和443.
git remote -vv
origin https://Vadorequest@bitbucket.org/Vadorequest/vadorequest.git (fetch)
origin https://Vadorequest@bitbucket.org/Vadorequest/vadorequest.git (push)
Run Code Online (Sandbox Code Playgroud)
git config --global http.proxy http://user:password@host:port
git config --global --unset-all http.proxy
git config --global https.proxy https://user:password@host:port
git config --global --unset-all https.proxy
请注意,如果您使用的是Windows并使用TortoiseGit,则可以从软件本身设置代理设置.(网络标签)
如果你正在使用Cygwin,那么请注意,如果你设置全局配置,它将只为当前环境设置.(使用cmd.exe将其设置为Windows,但使用cygwin控制台将仅为cygwin设置它)
因此,如果您通过IDE(PhpStorm,WebStorm)使用Git,请确保在IDE使用的环境中设置配置,否则它将无法工作.
还要注意,如果你已经在git设置中设置代理并且你不在代理之后,它也不会工作.(即:你已经将它设置为工作状态并且工作正常,但是当你在家中使用它时,它以前不再工作了)
我有一节课Manager:
class Manager{
/**
* Elements that are managed by the manager.
*/
private _elements: PIXI.DisplayObject[];
Run Code Online (Sandbox Code Playgroud)
和一个TextureManager扩展的类Manager:
export class TextureManager extends Game.Managers.Manager{
private _elements: PIXI.DisplayObjectContainer[];
}
Run Code Online (Sandbox Code Playgroud)
只是你知道,PIXI.DisplayObjectContainer延伸PIXI.DisplayObject.
我相信,因为它是同一类型(基于同一对象上:PIXI.DisplayObject),类型的变化应该是可能的.(至少它是真正的OOP语言,如Java,如果我没记错的话)
但是在编译期间我收到此错误消息.我应该怎么做?
TextureManager.ts(9,18):错误TS2416:类'TextureManager'错误地扩展了基类'Manager':
类型具有私有属性'_elements'的单独声明.
解:
它似乎是一个简单的解决方案,但TS 1.3刚刚发布,就像3天前一样,并添加了对-really wanted- protected属性的支持.它似乎与一个protected属性一起使用它可以正常工作来改变类型,我只是protected _elements: any;在Manager父类上设置并在任何孩子中自定义我想要的类型protected _elements: Game.Core.Texture;.很酷.
由于我的IDE(WebStorm)尚未发布对TS 1.3的支持,我到处都变红了,但通过检Trigger watcher regardless of syntax error入File watcher我能够使它工作.支持即将推出:https: …
我想将mocha用于node.js. 我使用的最后一个测试框架是来自Ruby on Rails的Rspec,所以我试图以相同的方式进行,但是我被巨大的框架和我可以使用的所有库所困扰.
我正在关注官方的入门,但它没有解释如何组织测试.
http://visionmedia.github.io/mocha/#installation
现在,我正在阅读我可以使用以下库:
而且我知道还有更多,这只是我在摩卡官方网站上看到的列表.根据我的理解,看起来chai是与摩卡一起使用的,你怎么看?
而且,到目前为止,我从来没有看到任何东西来帮助我决定在哪里编写测试(好吧,在/ test /中,当然)以及如何组织所有内容.
我也使用伟大的sails.js框架(基于express)和pomelo.js用于不同的项目,我需要在两个框架上使用相同类型的测试,所以我正在寻找一个通用的架构和库,我可以在两者上使用(所以,不是特定于sails.js的东西,但可以直接从任何其他框架使用)
这就是我计划组织测试的方式,你认为这是一个正确的架构吗?
节点的主要问题是有很多框架,插件,库,我不知道什么是最好的选择,node.js对于一个大社区真的很大,而且很难对所有可能性进行概述.
你如何处理你的测试?
我正在尝试使用这样的http://jinja.pocoo.org/docs/dev/templates/#pprint pprint函数:
{{ pprint(player) }} 在我的html文件中,但是我收到以下错误:
jinja2.exceptions.UndefinedError
UndefinedError: 'pprint' is undefined
Run Code Online (Sandbox Code Playgroud)
Jinja2是python的模板引擎.有人可以帮我显示变量以便于调试吗?
javascript ×4
typescript ×3
node.js ×2
reactjs ×2
sails.js ×2
ecmascript-6 ×1
events ×1
extends ×1
git ×1
github ×1
inheritance ×1
jinja2 ×1
mocha.js ×1
mongoose ×1
oop ×1
open-source ×1
overriding ×1
performance ×1
proxy ×1
python-2.7 ×1
testing ×1
waterline ×1