小编Vad*_*est的帖子

开源项目中/ dist目录的含义是什么?

自从我第一次dist/在许多开源项目中看到一个目录,通常是在GitHub上,我一直在想它意味着什么.(我是外国人,没有英文原生)

随着dist,vendor,lib,src,和我们经常看到很多其他的文件夹名称,我有时想,我应该怎样命名我自己的文件夹.

如我错了请纠正我!

  • src:包含*sources**.有时只有纯源,有时只有缩小版本,取决于项目.
  • vendor:包含其他依赖项,与其他开源项目一样.
  • lib:好问题,它vendor实际上非常接近,取决于我们可以看到一个或另一个或两者的项目......
  • dist:从我看到的,它包含"生产"文件,如果我们想要使用,我们应该使用它.

为什么开源如此令人困惑?是不是可以更清楚地做事情?至少每种语言,因为某些语言使用特定的名称.

open-source github

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

打字稿:如何扩展两个类?

我希望节省我的时间,并在扩展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)

javascript oop extends typescript

54
推荐指数
6
解决办法
6万
查看次数

React - defaultProps vs ES6默认params在解构时(性能问题)

在我的一个无状态功能组件中设置默认值时,我刚刚遇到了关于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解构和参数的默认值使整个事情很容易编写/理解,它就像一个魅力. …

performance destructuring ecmascript-6 reactjs

39
推荐指数
2
解决办法
7337
查看次数

TypeScript中的"环境"是什么意思

我不明白ambient下面这句话的意思是什么:

无法在环境上下文中声明函数实现.

我不太明白这个词的一般含义,(英语不是我的母语),如果这里有特定含义,我也不理解.

我试图用我的母语来理解,但在这种情况下却无法理解.这就像current context我说的那样,但它没有成功.

出现这个消息是因为我正在尝试declare一个无法声明的类,只能module这样做.我已修复它但仍然不理解错误消息的含义.

typescript

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

有没有办法禁用水线并在sails.js中使用不同的ORM?

我想在我的sails.js应用程序中用mongoose替换水线.我正在寻找正确的方法来做到这一点,但我没有看到文档中的内容.任何人都可以解释如何做到这一点?

javascript mongoose node.js sails.js waterline

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

如何宣传活动?InvalidStateError:无法在'EventTarget'上执行'dispatchEvent':事件已被调度

我正在尝试将一个事件从我传播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有一种事件包装器.所以我失去许多特性,如whichisTrusted,成为false一次克隆.

有没有办法正确克隆React事件?

javascript events reactjs

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

git如何通过网络工作?(代理)

我想知道它是如何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)

解:

不安全的代理(http)

如果代理不安全,那么您可以使用以下命令进行配置:

git config --global http.proxy http://user:password@host:port

并使用以下方法禁用它

git config --global --unset-all http.proxy

安全代理(https)

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设置中设置代理并且你不在代理之后,它也不会工作.(:你已经将它设置为工作状态并且工作正常,但是当你在家中使用它时,它以前不再工作了)

git proxy

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

TypeScript - 更改子项中的属性类型,是否可能?

我有一节课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 errorFile watcher我能够使它工作.支持即将推出:https: …

inheritance overriding typescript

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

如何将mocha测试框架与node.js和sails.js一起使用

我想将mocha用于node.js. 我使用的最后一个测试框架是来自Ruby on Rails的Rspec,所以我试图以相同的方式进行,但是我被巨大的框架和我可以使用的所有库所困扰.

我正在关注官方的入门,但它没有解释如何组织测试.

http://visionmedia.github.io/mocha/#installation

现在,我正在阅读我可以使用以下库:

而且我知道还有更多,这只是我在摩卡官方网站上看到的列表.根据我的理解,看起来chai是与摩卡一起使用的,你怎么看?

而且,到目前为止,我从来没有看到任何东西来帮助我决定在哪里编写测试(好吧,在/ test /中,当然)以及如何组织所有内容.

我也使用伟大的sails.js框架(基于express)和pomelo.js用于不同的项目,我需要在两个框架上使用相同类型的测试,所以我正在寻找一个通用的架构和库,我可以在两者上使用(所以,不是特定于sails.js的东西,但可以直接从任何其他框架使用)

这就是我计划组织测试的方式,你认为这是一个正确的架构吗? 在此输入图像描述

节点的主要问题是有很多框架,插件,库,我不知道什么是最好的选择,node.js对于一个大社区真的很大,而且很难对所有可能性进行概述.

你如何处理你的测试?

javascript testing mocha.js node.js sails.js

13
推荐指数
2
解决办法
6280
查看次数

pprint jinja2调试变量帮助器

我正在尝试使用这样的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的模板引擎.有人可以帮我显示变量以便于调试吗?

jinja2 python-2.7

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