小编Yve*_* M.的帖子

package.json中的波浪号(〜)和插入符号(^)有什么区别?

我已经升级到最新的稳定后nodenpm,我试过npm install moment --save.它package.json使用^前缀保存条目.以前,它是一个~前缀.

  1. 为什么要进行这些更改npm
  2. ~和之间有什么区别^
  3. 比其他人有什么优势?

node.js npm semantic-versioning package.json

3111
推荐指数
18
解决办法
69万
查看次数

OS X终端中是否有任何方法可以逐字移动光标?

我知道组合Ctrl+ A跳转到当前命令的开头,Ctrl+ + E跳转到结尾.

但有没有什么方法可以一字一句地跳,就像Cocoa应用程序中的Alt+ / 一样?

macos terminal keyboard-shortcuts

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

node.exports与Node.js中的导出

我在Node.js模块中找到了以下合同:

module.exports = exports = nano = function database_module(cfg) {...}
Run Code Online (Sandbox Code Playgroud)

我不知道什么之间的不同module.exportsexports为什么都被用在这里.

javascript commonjs node.js

701
推荐指数
10
解决办法
23万
查看次数

为什么"npm install"重写package-lock.json?

我刚刚升级到npm @ 5.我现在有一个package-lock.json文件,其中包含package.json中的所有内容.我希望,当我运行时npm install,将从锁定文件中提取依赖版本以确定应该在我的node_modules目录中安装什么.奇怪的是它实际上最终修改并重写了我的package-lock.json文件.

例如,锁定文件的typescript指定为版本2.1.6.然后,在npm install命令之后,版本更改为2.4.1.这似乎打败了锁定文件的整个目的.

我错过了什么?如何让npm真正尊重我的锁文件?

node.js npm npm-install package-lock.json

536
推荐指数
9
解决办法
16万
查看次数

使用"Object.create"而不是"new"

Javascript 1.9.3/ECMAScript 5介绍Object.create道格拉斯·克罗克福德等人长期以来一直在倡导.如何new在下面的代码中替换Object.create

var UserA = function(nameParam) {
    this.id = MY_GLOBAL.nextId();
    this.name = nameParam;
}
UserA.prototype.sayHello = function() {
    console.log('Hello '+ this.name);
}
var bob = new UserA('bob');
bob.sayHello();
Run Code Online (Sandbox Code Playgroud)

(假设存在MY_GLOBAL.nextId).

我能想到的最好的是:

var userB = {
    init: function(nameParam) {
        this.id = MY_GLOBAL.nextId();
        this.name = nameParam;
    },
    sayHello: function() {
        console.log('Hello '+ this.name);
    }
};
var bob = Object.create(userB);
bob.init('Bob');
bob.sayHello();
Run Code Online (Sandbox Code Playgroud)

似乎没有任何优势,所以我想我没有得到它.我可能过于新古典主义了.我应该如何使用MY_GLOBAL.nextId创建用户'bob'?

javascript constructor new-operator object-create

364
推荐指数
8
解决办法
17万
查看次数

JavaScript,Node.js:Array.forEach是异步的吗?

我有一个关于Array.forEachJavaScript 的本机实现的问题:它是否异步?例如,如果我打电话:

[many many elements].forEach(function () {lots of work to do})
Run Code Online (Sandbox Code Playgroud)

这会不会阻塞吗?

javascript arrays foreach asynchronous node.js

358
推荐指数
5
解决办法
26万
查看次数

Node.js项目的文件夹结构

我注意到Node.js项目通常包含这样的文件夹:

/ libs,/ vendor,/ support,/ spec,/ tests

这究竟是什么意思?它们之间有什么不同,我应该在哪里包含引用的代码?

node.js

332
推荐指数
4
解决办法
20万
查看次数

Mustache.js和Handlebars.js有什么区别?

我见过的主要差异是:

  • 把手增加了#if,#unless,#with,和#each
  • 把手增加了助手
  • 处理句柄模板(Mustache也可以)
  • 把手支持路径
  • 允许使用{{this}}in块(输出当前项的字符串值)
  • Handlebars.SafeString() (也许还有其他一些方法)
  • 把手的速度提高了2到7倍
  • 胡子支持倒置部分(即if !x ...)

(如果我对上述内容有误,请纠正我.)

我还缺少其他重大差异吗?

templating-engine mustache client-side-templating handlebars.js

321
推荐指数
8
解决办法
12万
查看次数

如何在没有自己的注册表的情况下安装私有NPM模块?

我已经采用了一些共享代码并将其放入NPM模块中,我不想将其上传到中央注册表.问题是,如何从其他项目安装它?

显而易见的方法可能是建立我自己的NPM注册表,但根据文档,这涉及很多麻烦.

我可以只安装一个位于本地文件系统上的NPM模块,甚至可以安装git吗?

npm install --from-git git@server:project
Run Code Online (Sandbox Code Playgroud)

package node.js npm npm-private-modules

315
推荐指数
9
解决办法
17万
查看次数

可以将Git钩子脚本与存储库一起管理吗?

我们想制作一些我们可以共享的基本钩子脚本 - 例如预格式化提交消息.Git有通常存储在其下的钩子脚本<project>/.git/hooks/.但是,当人们进行克隆并且它们不受版本控制时,这些脚本不会传播.

有没有一种好方法可以帮助每个人获得正确的钩子脚本?我可以让这些钩子脚本指向我的仓库中的版本控制脚本吗?

git githooks

298
推荐指数
7
解决办法
7万
查看次数