原文: https://blog.risingstack.com/node-js-best-practices-part-2/

统一风格

在大团队开发JS应用, 创建一个风格指南是很有必要的. 推荐看看这个 Node.js Style Guide.

JSCS是一个JS代码风格检查器. 安装命令如下:

npm install jscs --save-dev

下一步在package.json文件中添加自定义脚本:

scripts: {
"jscs": "jscs index.js"
}

当然, 你可以添加多个文件/文件夹.

Enforce JSHint / JSCS Rules

在commit提交之前就去检查代码风格是一个不错的选择.

这很容易做到,只需要使用 pre-commit就行了:

npm install --save-dev pre-commit

配置你的package.json 文件如下:

pre-commit": [
"jshint",
"jscs"
],

在每次commit之前pre-commit会去查找对应的script,并运行.

JS over JSON for configuration

许多项目的配置文件都是JSON的. 我们建议你也使用config.js文件:

Use NODE_PATH

你是否遇到过下面的事情?

当你接受了一个大的复杂项目的结构的时候会发现依赖模块非常混乱. 可以使用下面方法解决这个问题:

  • 将你的moudle指向node_modules文件夹
  • 使用 NODE_PATH

RisingStack使用NODE_PATH这种方式.

Setting up NODE_PATH

想象一下下面的项目结构:

我们可以使用NODE_PATH指向lib文件夹. 在我们的package.json文件中的start script section中可以设置,这样我们用npm start命令就可以运行我们的应用了.

依赖注入

依赖注入对于测试来说用处非常大

[译]Node.js Best Practices - Part 2的更多相关文章

  1. [译]Node.js Best Practices

    原文: http://blog.risingstack.com/node-js-best-practices/ 下面的的最佳实践分为代码风格和开发工作流两种. 代码风格 Callback约定 Modu ...

  2. [译]Node.js - Event Loop

    介绍 在读这篇博客之前,我强列建议先阅读我的前两篇文章: Getting Started With Node.js Node.js - Modules 在这篇文章中,我们将学习 Node.js 中的事 ...

  3. [译]Node.js Interview Questions and Answers (2017 Edition)

    原文 Node.js Interview Questions for 2017 什么是error-first callback? 如何避免无止境的callback? 什么是Promises? 用什么工 ...

  4. 译\Node.js应用的持续部署

    Node.js应用的持续部署 翻译前 翻译自:https://blog.risingstack.com/continuous-deployment-of-node-js-applications/ 正 ...

  5. [译]Node.js : Building RESTful APIs using Loopback and MySQL

    国庆后可能就要使用StrongLoop那套东西来做项目了 原文:http://www.javabeat.net/loopback-mysql/ Loopback是什么? Loopback是一个开源的N ...

  6. [译]Node.js面试问与答

    原文: http://blog.risingstack.com/node-js-interview-questions/ 什么是error-first callback? 如何避免无休止的callba ...

  7. (译)Node.js的 EventEmitter 教程

    原文标题:Node.js EventEmitter Tutorial 原文链接:http://www.hacksparrow.com/node-js-eventemitter-tutorial.htm ...

  8. (译)Node.js的全局变量

    原文标题:Global Variables in Node.js 原文链接:http://www.hacksparrow.com/global-variables-in-node-js.html 你可 ...

  9. (译)Node.js的模块-exports和module.exports

    原文标题:Node.js Module – exports vs module.exports 原文链接:http://www.hacksparrow.com/node-js-exports-vs-m ...

随机推荐

  1. hdu 5233 离散化

    10^9的大数组显然开不了.所以也算比较裸的离散化了... 令pos[i].pp[j]表示从左到右第j个高度为i的树的位置 (pp是个vector,范围0..now-1) pos[i].num表示有几 ...

  2. php des 加密解密实例

    des加密是对称加密中在互联网应用的比较多的一种加密方式,php 通过mcrypt扩展库来支持des加密,要在Php中使用des加密,需要先安装mcrypt扩展库 $iv_size = mcrypt_ ...

  3. ecshop /flow.php SQL Injection Vul

    catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 ECSHOP的配送地址页面网页没有验证地区参数的有效性,存在sql注入漏 ...

  4. 找女神要QQ号码

    引言 我们组来了个美女程序员,我心里窃喜,哈哈这下机会来了.我在想怎么下手呢?好吧,还是从QQ号码开始,找到女神要到QQ号,哈哈,我真是个天才~~~ 是这样子滴 想法是美好的,现实是残酷的,找女神要Q ...

  5. Always review

    Data structures A data structure is a way to store and organize data in order to facilitate access a ...

  6. 原生JS中常用的Window和DOM对象操作汇总

    一.常用的Window对象操作 Window对象中又包含了document.history.location.Navigator和screen几个对象,每个对象又有自己的属性方法,这里window可以 ...

  7. PHP常用函数备用

    刚学习php的时候,我也为记忆php函数苦恼不已.认为干嘛记忆这么枯燥无味的东西呢?用的时候查一下手册不就行了吗?但是当时因为身在辅导机构,还是记忆了一大堆自己并不感兴趣的函数. 由此就想起来,小的时 ...

  8. UIViewController 的 presentedViewController 和 presentingViewController

    #import "TestViewController.h" #import "OneViewController.h" 在TextViewController ...

  9. Cheminformatic Set

    蛋白: 数据库 1. 蛋白晶体结构数据库 http://www.rcsb.org/pdb/home/home.do 2. 蛋白注释数据库 http://www.uniprot.org/ 工具 1. r ...

  10. 工作流、业务流程管理和SOA

    http://www.cnblogs.com/shanyou/archive/2009/03/29/1424213.html 工作流定义: The  automation of a business ...