小编jay*_*ren的帖子

`npm install`通过网络安装我项目的所有依赖项,即使它们已经安装或可从缓存中获得

每当我npm install在项目目录中运行时,npm就会获取并安装所有依赖项,即使它们已经安装在中node_modules.Npm不会从我的缓存中安装~/.npm/,即使我的缓存中已经有非常多的软件包.

这是我的npm配置设置npm config ls -l:

; cli configs
long = true
registry = "https://registry.npmjs.org/"

; userconfig /Users/jay/.npmrc
username = "jayhendren"

; globalconfig /Users/jay/local/nodejs/etc/npmrc
global = true
globalconfig = "/Users/jay/local/nodejs/etc/npmrc"
globalignorefile = "/Users/jay/local/nodejs/etc/npmignore"
prefix = "/Users/jay/local/nodejs"

; default values
always-auth = false
bin-links = true
browser = null
ca = null
cache = "/Users/jay/.npm"
cache-lock-retries = 10
cache-lock-stale = 60000
cache-lock-wait = 10000
cache-max = null
cache-min = 10
cert = null …
Run Code Online (Sandbox Code Playgroud)

node.js npm

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

是否有Python的dict.get()内置的递归版本?

我有一个嵌套的字典对象,我希望能够检索具有任意深度的键的值.我可以通过子类化来完成这个dict:

>>> class MyDict(dict):
...     def recursive_get(self, *args, **kwargs):
...         default = kwargs.get('default')
...         cursor = self
...         for a in args:
...             if cursor is default: break
...             cursor = cursor.get(a, default)
...         return cursor
... 
>>> d = MyDict(foo={'bar': 'baz'})
>>> d
{'foo': {'bar': 'baz'}}
>>> d.get('foo')
{'bar': 'baz'}
>>> d.recursive_get('foo')
{'bar': 'baz'}
>>> d.recursive_get('foo', 'bar')
'baz'
>>> d.recursive_get('bogus key', default='nonexistent key')
'nonexistent key'
Run Code Online (Sandbox Code Playgroud)

但是,我不希望子类dict来获取此行为.是否有一些具有等效或类似行为的内置方法?如果没有,是否有任何标准或外部模块提供此行为?

我目前正在使用Python 2.7,但我也很想知道3.x解决方案.

python recursion dictionary nested

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

C - 程序仅在与GDB一起运行时才能获取文件描述符

我不是专业的C程序员.我在使用GDB调试程序时遇到问题.(我试图修复的错误与我在这里询问的问题无关.)我的问题是程序在我直接从shell运行二进制文件时运行正常,但是当我使用GDB运行它时程序崩溃了.

以下是一些可能有用的程序信息:它是一个20多年历史的数据库软件,最初是为Solaris编写的(我认为)但是从移植到Linux,这是setuid(但不是root,感谢上帝) .

尝试打开文件进行写入时,程序在GDB中崩溃.使用GDB,我能够确定发生崩溃,因为以下系统调用失败:

fd = open(path, O_WRONLY|O_CREAT|O_TRUNC, 0644);
Run Code Online (Sandbox Code Playgroud)

为了澄清:path存在的锁文件的路径.如果存在锁定文件,则程序在进入此系统调用之前会干净地关闭.

我不明白为什么这个系统调用会失败,因为1)该程序运行的用户在包含的目录上运行rwx权限path(我通过检查存储的变量的值验证了这一点path),以及2)程序成功打开我不使用GDB进行调试时写入的文件.

有什么理由我不能

c linux

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

如何在我的git存储库中列出具有特定扩展名的所有文件?

我的git存储库跟踪多种文件,例如Ruby文件,YAML文件和Markdown文件.我想要一个包含我的仓库中所有Ruby文件的列表,但是我无法使用,find -type f -name '*.rb'因为我还有一个不被git跟踪但包含大量ruby文件的构建目录.如何只列出*.rbgit跟踪的那些文件?

git

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

libGL错误:找不到匹配的fbConfigs或视觉效果

跑步时我收到错误 xvfb-run electron app/

libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
Run Code Online (Sandbox Code Playgroud)

电子应用程序只是打开一个简单的html文件.Ubuntu 16.04

我发现这篇文章,但解决方案是关于nvidia驱动程序,这不是我的情况.

x11 opengl xvfb electron

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

Python:调用方法在[pointer]>而不是object返回<[object]

我是一个非常新手的程序员.我正在尝试使用模块中的combinations工具itertools.所以我尝试:

from itertools import *
print combinations('12345', 3)
Run Code Online (Sandbox Code Playgroud)

而不是('123', '124', '125', [...])我得到的预期<itertools.combinations object at [pointer]>.我很困惑,因为在其他模块中调用方法会返回预期的结果,例如:

import random
print random.randrange(10)
>>> 9
Run Code Online (Sandbox Code Playgroud)

我对itertools模块做错了什么?

python import module python-2.x

3
推荐指数
1
解决办法
227
查看次数

Vim:在shell转义时更改提示

我经常:sh在vim中编辑文件时使用,这样我就可以在返回编辑文件之前执行git提交之类的小任务.但是,有时我会混淆我的shell是否是由我的终端模拟器启动的,或者它是作为vim子shell启动的,因此exit在提示符下输入总是冒着意外关闭终端模拟器而不是回到我的vim编辑会话的风险.有没有办法让vim修改我的提示,可能是$PS1环境变量,当我从vim启动一个shell时,我知道我是否在vim启动的子shell中?

vim shell

3
推荐指数
1
解决办法
1275
查看次数

“instanceof”和“in”关键字有什么区别?

为了验证类成员身份ininstanceof关键字的行为似乎相同。那么两者有什么区别呢?有什么区别吗?StackOverflow 上有几个问题(此处此处),其中给出了两个关键字作为此目的的解决方案,但没有提及两者之间的区别或何时使用一个关键字更合适。另外,官方文档提到该关键字in相当于调用对象的isCase()方法,但没有详细说明该instanceof关键字的作用。


这两个关键字在类继承和接口实现方面的行为似乎相同:

class MyMap extends LinkedHashMap { }

def foo = new LinkedHashMap()
def bar = new MyMap()

println("LinkedHashMap instance is 'in' LinkedHashMap: ${foo in LinkedHashMap}")
println("LinkedHashMap instance is 'instanceof' LinkedHashMap: ${foo instanceof LinkedHashMap}")
println("LinkedHashMap instance is 'in' Map: ${foo in Map}")
println("LinkedHashMap instance is 'instanceof' Map: ${foo instanceof Map}")
println("MyMap instance is 'in' LinkedHashMap: ${bar in LinkedHashMap}")
println("MyMap instance is 'instanceof' …
Run Code Online (Sandbox Code Playgroud)

groovy types instanceof

3
推荐指数
1
解决办法
2056
查看次数

GDB/GNU程序集:测试%esi,%esi返回不相等?

我正在做家庭作业.我们给出了一个预编译的二进制文件,我们必须使用它gdb来获取程序集转储,遍历数据结构,查看存储在内存中的值等,以便弄清楚二进制文件的功能.以下是函数调用的几行反汇编转储:

0x08048e14 <+21>:   test   %esi,%esi
0x08048e16 <+23>:   jne    0x8048e4b <fun6+76>
0x08048e18 <+25>:   jmp    0x8048e5d <fun6+94>
Run Code Online (Sandbox Code Playgroud)

我假设test %esi,%esi总是返回"equals"的结果(或者更确切地说,使用寄存器标志表示的等效语句,我认为只是ZF设置了吗?),并且jne指令永远不会执行,而程序将执行在线指令<+25>.但是,在单步执行这些指令后,程序会跳转到行<+76>!为什么会这样?我很困惑.

如果它有助于解释答案,这里是test在线指令后的寄存器标志<+21>(ZF未设置?)(我仍然不知道如何解释标志):

eflags         0x202    [ IF ]
Run Code Online (Sandbox Code Playgroud)

c assembly gdb disassembly

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

html/javascript:防止表单提交时清除<input>值

我有一个只包含一个<input>元素的表单:

    <form>
            <input
                    type="text"
                    name="webpage-activity-url"
                    placeholder="URL"
                    value="[value inserted by templating engine]"
            />
            <button type="submit" class="button button-secondary" data-action="urlSubmit">
                    Submit
            </button>
    </form>
Run Code Online (Sandbox Code Playgroud)

我还有一些javascript(以coffeescript的形式),在提交表单时调用:

    onURLSubmit: (e)->
            e.preventDefault()
            # console.log('urlSubmit')
            url =  @$el.find('input[name="webpage-activity-url"]').val()
            if _.trim(url) == ''
                    return false
            if url.indexOf('//') == -1
                    url = 'http://' + url
            unless @$el.find('iframe').length > 0
                    iframe = $('<iframe />').insertAfter(@$el.find('.instructor-ui-box').first())
            @setIframeSrc url
            @$el.find('input[name="webpage-activity-url"]').val('')
Run Code Online (Sandbox Code Playgroud)

这里是编译为javascript的相同函数,以防你不熟悉coffeescript:

WebpageActivityLayout.prototype.onURLSubmit = function(e) {
  var iframe, url;
  e.preventDefault();
  url = this.$el.find('input[name="webpage-activity-url"]').val();
  if (_.trim(url) === '') {
    return false;
  }
  if (url.indexOf('//') === …
Run Code Online (Sandbox Code Playgroud)

html javascript forms jquery coffeescript

0
推荐指数
1
解决办法
1118
查看次数