NodeJS:12个提高开发人员生产率的软件包





带有负载平衡器的生产过程经理。用于调试和Git挂钩的包装器,通过HTTP标头保护快速应用程序,具有180多个用于处理日期的功能的实用程序,以及其他可节省时间的工具。该集合对于NodeJS新手开发人员特别有用,但可以使经验丰富的怀疑者满意。



每当您需要解决代码问题时,就有可能已经有一个软件包可以解决您的问题。这是我认为每个开发人员都应该知道的软件包列表。将这些npm软件包视为节省时间的工具。



1.哈士奇



Husky使在Git中实现钩子变得容易。它允许您要求所有人在提交或推送到存储库之前自动完成测试并测试代码。





来源沙哑



安装



yarn add husky


应用



钩子示例husky



// package.json
{
  "husky": {
    "hooks": {
      "pre-commit": "npm lint",
      "pre-push": "npm test"
    }
  }
}


pre-commit在提交之前运行。

pre-push提交到存储库之前。






2. Dotenv



Dotenv是一个没有依赖关系的模块。它将环境变量从文件加载.envprocess.env中将配置保持在与代码分离的环境中是基于十二要素应用程序方法的资料来源



安装



yarn add dotenv


应用



在您的应用程序中尽早编写require并设置值dotenv



require('dotenv').config()


.env在项目的根目录中 创建一个文件。将环境变量添加到新行中NAME=VALUE例如:



DB_HOST=localhost
DB_USER=root
DB_PASS=s1mpl3


现在process.env包含文件中的键和值.env



const db = require('db')
db.connect({ host: process.env.DB_HOST, username: process.env.DB_USER, password: process.env.DB_PASS})





3.date-fns



Date- fns与lodash相似,但设计用于日期。在浏览器和Node.JS中提供一套完整但简单且一致的JavaScript日期操作工具。





来源date-fns



安装



yarn add date-fns


应用



date-fns示例:



import { compareAsc, format } from 'date-fns'
format(new Date(2014, 1, 11), 'yyyy-MM-dd')  
//=> '2014-02-11'
const dates = [  
  new Date(1995, 6, 2),  
  new Date(1987, 1, 11),  
  new Date(1989, 6, 10),  
]  
dates.sort(compareAsc)  
//=> [  
//   Wed Feb 11 1987 00:00:00,  
//   Mon Jul 10 1989 00:00:00,  
//   Sun Jul 02 1995 00:00:00  
// ]


带有示例和用例的文档






4.文扬



Bunyan是用于Node的易于使用且功能强大的JSON日志记录库。





资料来源



安装



yarn add bunyan


请注意: CLIbunyan编写为与所有版本的Bunyan日志兼容(在一定程度上)。所以,你可以在全局安装:yarn add global bunyan进入这个工具PATH,然后使用本地本仁的安装应用程序。



应用



Bunyan是用于Node.js服务的简单快速的JSON日志记录库。



// hi.jsconst bunyan = require('bunyan');
const log = bunyan.createLogger({name: "myapp"});
log.info("hi");


如果您运行,这是返回控制台的内容node hi.js










5.拉姆达



Ramda是一个实用且有用的功能样式库。它强调纯功能风格。不变性和无副作用功能是Ramda设计理念的核心。这种方法可以帮助您编写简单,优雅的代码。





来源ramda



安装



yarn add ramda


应用



import * as R from 'ramda'
const greet = R.replace('{name}', R.__, 'Hello, {name}!'); 
greet('Alice'); //=> 'Hello, Alice!'


代码示例






6.调试



Debug是一个模仿Node.JS调试技术的微型JavaScript调试实用程序。





调试源



安装



yarn add debug


应用



调试提供了一个功能。只需将模块的名称传递给此函数,它将返回经过修饰的版本console.error以传递调试语句。



const debug = require('debug');
const log = debug('http:server');
const http = require('http');
const name = 'My App name';
log('booting %o', name);
http.createServer((req, res) => {
  log(req.method + ' ' + req.url);
  res.end('debug examplen');
}).listen(3200, () => {
  log('listening');
});
//   
// DEBUG=http:server node app.js


显示或隐藏模块整体或部分调试输出。








7.平



取平对象并对其进行展平。您还可以折叠键分隔的对象。[注意。翻译 -不仅句点可以是分隔符]。





来源平



安装



yarn add flat


应用



const flatten = require('flat')
flatten({  
    key1: {  
        keyA: 'valueI'  
    },  
    key2: {  
        keyB: 'valueII'  
    },  
    key3: { a: { b: { c: 2 } } }  
})
// {  
//   'key1.keyA': 'valueI',  
//   'key2.keyB': 'valueII',  
//   'key3.a.b.c': 2  
// }







8. JSON5



JSON5 数据交换格式JSON的超集,旨在通过扩展其语法以包括一些ECMAScript 5.1功能来减轻JSON的某些限制





JSON5来源



安装



yarn add json5  
const JSON5 = require('json5')


应用



注意文件扩展名。JSON5是超集,是JSON的扩展。



{
  // 
  unquoted: 'and you can quote me on that',
  singleQuotes: 'I can use "double quotes" here',
  lineBreaks: "Look, Mom! \
No \\n's!",
  hexadecimal: 0xdecaf,
  leadingDecimalPoint: .8675309, andTrailing: 8675309.,
  positiveSign: +1,
  trailingComma: 'in objects', andIn: ['arrays',],
  "backwardsCompatible": "with JSON",
}





9. ESLint



ESLint是避免错误并为开发团队设置编码标准的好工具。ESLint是用于识别和表示ECMAScript / JavaScript代码中的模式的工具。





ESLint来源



安装与应用



yarn add eslint


然后设置配置文件:



./node_modules/.bin/eslint --init


之后,可以在任何文件或目录中运行ESLint,例如:



./node_modules/.bin/eslint yourfile.js


文档,其中包含许多入门和设置示例。






10. PM2



PM2是具有内置负载平衡器的生产过程管理器。它使您可以始终保持应用程序运行,无需停机即可重新加载它们,并简化常见的系统管理任务。





来源pm2



安装



yarn add global pm2


应用启动



您可以像这样运行任何应用程序(Node.js,Python,Ruby,二进制文件$PATH等):



pm2 start app.js


您的应用程序现在在守护程序的控制下运行,并得到持续监控和维护。了解有关流程管理的更多信息,快速入门



这是列出所有正在运行的应用程序的方法:



pm2 ls






请查阅官方文档以获取功能和特性的完整列表。






11.头盔



头盔可帮助通过HTTP标头保护快递应用程序。这不是灵丹妙药,但可以提供帮助。





头盔来源



安装



yarn add helmet


应用



HelmetConnect风格编写,并且与Express等框架兼容如果您需要Koa支持,请参阅koa-helmet。)



const express = require("express");  
const helmet = require("helmet");
const app = express();
app.use(helmet());


头盔功能是11种较小的中间件的包装。换句话说,相当于



// ...
app.use(helmet());
// ... : 
app.use(helmet.contentSecurityPolicy());  
app.use(helmet.dnsPrefetchControl());  
app.use(helmet.expectCt());  
app.use(helmet.frameguard());  
app.use(helmet.hidePoweredBy());  
app.use(helmet.hsts());  
app.use(helmet.ieNoOpen());  
app.use(helmet.noSniff());  
app.use(helmet.permittedCrossDomainPolicies());  
app.use(helmet.referrerPolicy());  
app.use(helmet.xssFilter());





12.压缩



压缩是一种数据压缩工具。





压缩源



安装



yarn add compression


应用



Express一起使用此模块时connectcompression()在中间件中调用通过中间件的请求将被压缩。



const compression = require('compression')  
const express = require('express')
const app = express()
//     
app.use(compression())// ...


您使用什么工具来使用NodeJS?



图片


通过在线SkillFactory课程,了解如何从头开始或在技能和薪资水平上获得高知名度的职业的详细信息:





E







All Articles