主页»NodeJS»程序员运用Node的十个技巧

程序员运用Node的十个技巧

来历:Sonet-life 发布时刻:2015-10-14 阅览次数:

  从面世到现在将近20年,JavaScript一向缺少其它有吸引力的编程言语,比方Python和Ruby,的许多长处:指令行界面,REPL,包办理器,以及安排杰出的开源社区。感谢Node.js和npm,现如今的JavaScript鸟枪换炮了。凯发娱乐官网有了强壮的新东西,接下来就看他们的想象力了。

  下面这个提示和技巧清单,能让你和你的node程序坚持高兴。

 1. 用npm init开端新项目

  npm有个init指令,能够引导你完结创立package.json文件的进程。即使你十分了解package.json和它的特点,也能够把npm init当作将你的新程序或模块导入正轨的简洁方法。 它能够聪明地为你设置默许值,比方经过上层目录的称号揣度模块名,从~/.npmrc中读取创作者的信息,以及用你的git设置确认代码库。

mkdir my-node-app
cd my-node-app
npm init

 2.声明一切依靠项

  在将模块装置到项目本地时坚持运用--save (或 --save-dev)是个好习气。这些选项会将指定的模块添加到package.json的dependencies(或devDependencies)清单中,并运用合理的默许semver规模

npm install domready --save

  留意,现在npm运用刺进符风格的semver规模

"dependencies": {
  "domready": "^1.0.4"
}

 3.指定发动脚本

  在package.json中设定scripts.start,你就能够在指令行顶用npm start发动程序了。这个十分便利,因为克隆了你的程序的其他node开发人员不必猜就能轻松运转它。

  额定奖赏:假如在package.json中界说了scripts.start,你就不需求Procfile了(Heroku渠道用Procfile来声明在你程序的dynos上运转什么指令)。运用npm start会主动创立一个作为web进程的Procfile。

  这里有个发动脚本示例:

"scripts": {
  "start": "node index.js"
}

 4.指定测验脚本

  就像团队中的一切人都应该能够运转程序相同,他们也应该能够测验它。package.json中的scripts.test便是用来指定运转测验套件的脚本的。假如你用mocha之类的东西运转测验,一定要保证把它包含在package.json里的devDependencies中,而且指向装置在你项目本地的文件,而不是大局装置的mocha:

"scripts": {
  "test": "mocha"
}

 5.不要把依靠项放在源码的版别操控中

  许多node程序运用的npm模块带有C言语写的依靠项,比方bson、ws和hiredis,这些依靠项有必要在Heroku的64位Linux架构下进行编译。编译进程或许十分耗时。为了让构建进程尽或许的快,Heroku的node buildpack在下载和编译完依靠项后会缓存它们,以便在后续布置中重用。这个缓存是为了下降网络流量并削减编译次数。

  疏忽node_modules目录也是模块创作者引荐的npm实践。运用程序和模块之间少了一个差异!

echo node_modules >> .gitignore

 6.用环境变量装备npm

  以下内容摘自npm装备

一切以npm_config_最初的环境变量都会被解释为装备参数。比方说环境中有npm_config_foo=bar时,会将装备参数foo设置为bar。任何没有给出值的环境装备的值都会设置为true。装备值对大小写不灵敏,所以NPM_CONFIG_FOO=bar也相同。

  最近在一切的Heroku构建中都有程序的环境。这一改动让Heroku上的node用户无需修正程序代码就能够操控他们的npm装备。习气#7是这一方法的完美比如。

 7.带着你自己的npm注册中心

  最近几年公共npm注册中心出现了日新月异式的增加,因此会偶然不稳定。所以许多node用户开端寻求公共注册中心之外的计划,他们或许是出于开发和构建进程中速度及稳定性方面的考虑,或许是因为要放置私有的node模块。

  最近几个月冒出了一些可供挑选的npm注册中心。NodejitsuGemfury供给收费的私有注册中心,此外也有一些免费的,比方Mozilla的只读S3/CloudFront镜像Maciej Małecki的欧洲镜像

  在Heroku上装备node程序运用定制注册中心很简单:

heroku config:set npm_config_registry=http://registry.npmjs.eu

 8.追寻过期的依靠项

  假如你编程的时刻满足长,或许现已领教过相依性阴间的厉害了。好在Node.js和npm接收了semver,即 语义化版别办理标准 ,设置了一个健全的依靠项办理先例。在这个计划下,版别号和它们的改动方法传达的意义触及到了底层代码,以及从一个版别到下一版别修正了什么。

  npm有一个很少有人知道的指令,outdated。它能够跟npm update结合运用,能够找出程序的那些依靠项现已过期了,需求更新:

cd my-node-app
npm outdated

Package            Current  Wanted     Latest  Location
-------            -------  ------     ------  --------
express              3.4.8   3.4.8  4.0.0-rc2  express
jade                 1.1.5   1.1.5      1.3.0  jade
cors                 2.1.1   2.1.1      2.2.0  cors
jade                0.26.3  0.26.3      1.3.0  mocha > jade
diff                 1.0.7   1.0.7      1.0.8  mocha > diff
glob                 3.2.3   3.2.3      3.2.9  mocha > glob
commander            2.0.0   2.0.0      2.1.0  mocha > commander

  假如你做的是开源的node程序或模块,能够看看david-dmNodeICOshields.io,你能够用这三个优异服务所供给的图片徽章在项目的README或网站上显现生动的依靠信息。

 9.用npm脚本运转定制的构建进程

  跟着npm生态体系的持续增加,开发和构建进程的主动化挑选也会随之增加。Grunt是迄今为止node国际中最盛行的构建东西,但像gulp.js这种新东西,以及一般的旧式npm脚本也因为较轻的负载遭到欢迎。

  在你把node程序布置到Heroku上时,要运转npm install --production指令以保证程序的npm依靠项会被下载下来装上。但那个指令也会做其它作业:它会运转你在package.json文件中界说的一切npm脚本钩子,比方preinstall和postinstall。这里有个样本:

{
  "name": "my-node-app",
  "version": "1.2.3",
  "scripts": {
    "preinstall": "echo here it comes!",
    "postinstall": "echo there it goes!",
    "start": "node index.js",
    "test": "tap test/*.js"
  }
}

  这些脚本能够是行内bash指令,或许也能够指向可执行的指令行文件。你还能够在脚本内引证其他npm脚本:

{
  "scripts": {
    "postinstall": "npm run build && npm run rejoice",
    "build": "grunt",
    "rejoice": "echo yay!",
    "start": "node index.js"
  }
}

 10.测验新东西

  ES6,也便是被群众称为JavaScript的ECMAScript言语标准的下一版,其作业称号为Harmony。 Harmony给JavaScript带来了许多振奋人心的新特性,其间许多现已出现在较新版别的node中了。

  Harmony完成了许多新特性,比方块效果域生成器署理弱映射等等。

  要在你的node程序中启用harmony的特性,需求指定一个比较新的node引擎,比方0.11.x,并在发动脚本中设置--harmony选项:

{
  "scripts": {
    "start": "node --harmony index.js"
  },
  "engines": {
    "node": "0.11.x"
  }
}

 11. Browserify

  客户端JavaScript有乱如麻团般的留传代码,但那并不是言语自身的错。因为缺少合理的依靠项办理东西,让jQuery-插件复制-粘帖的黑暗时代连续了好多年。感谢npm,带着咱们步入了前端复兴的时代:npm注册中心像野草相同疯长,为浏览器规划的模块也出现出了惊人的增加势头。

  Browserify是一个让node模块能够用在浏览器中的奇特东西。假如你是前端开发人员,browserify将会改动你的人生。或许不是今日,也不是明日,但不会太久。假如你想开端运用browserify,请参阅这些文章

QQ群:凯发娱乐官网官方群(515171538),验证音讯:10000
微信群:加小编微信 849023636 邀请您参加,验证音讯:10000
提示:更多精彩内容重视微信大众号:全栈开发者中心(fsder-com)
网友谈论(共1条谈论) 正在载入谈论......
沉着谈论文明上网,回绝歹意咒骂 宣布谈论 / 共1条谈论
登录会员中心