当前位置: 首页 > 后端技术 > Node.js

NodeJS开头的两三件事

时间:2023-04-03 13:19:32 Node.js

主要是为了背。开始接触NodeJS有一段时间了,断断续续的,自己也老了,久了容易忘事,汗。安装Node直接到官网下载LTS版本安装即可。无需关注新功能并使用最新版本。安装Node基本没什么坑,记得把它加入PATH即可。Windows是双击安装,macOS推荐使用brew安装,完成后在命令行进行测试。$node-v后期如果没有breakingAPIchange,基本不用升级。需要配置NodeJS的包管理器npm。如果是在墙内,使用过程中可能不稳定,一般建议使用国产镜像源。目前,最知名的是淘宝。https://npm.taobao.org/.npmrc可以通过修改~/.npmrc设置默认包源:registry=https://registry.npm.taobao.org/cnpm也可以安装cnpm代替npm:npminstallcnpm-g后的大部分npm都可以直接用cnpm代替(release相关的除外):cnpminstallnrm其实我也推荐你知道另一种切换源的方法nrm:nmpinstallnrm-g使用方法如下,超级简单:$nrmls*npm----https://registry.npmjs.org/cnpm---http://r.cnpmjs.org/taobao-https://注册表.npm。taobao.org/nj-----https://registry.nodejitsu.com/rednpm-http://registry.mirror.cqupt.edu.cn/npmMirrorhttps://skimdb.npmjs.com/registry/edunpm-http://registry.enpmjs.org/$nrm使用淘宝注册表已设置为:https://registry.npm.taobao.org/使用nrmls列出可以切换的源,然后nrm使用瞬间切换,爽!毕竟代理图源是副本,你可能对同步状态不太满意。最近淘宝的源码可能出现如下错误:npmERR!registryerrorparsingjson作为一个资深的coder,你可能有一个本地代理(SS懂吗?)让你无障碍上网,那么你可以这样做:npmconfigsetproxyhttp://server:portnpmconfigsethttps-proxyhttp://server:port配置好npm代理后,又可以愉快的玩耍了。GettingStartedwithNode教程三分钟入门NodeJS,如果你已经有其他语言的编程经验,没问题。NodeJS的核心可执行程序node[.exe]可以简单理解为代码解释器,类似于Java虚拟机、C#的.netFramework、Python中的python[.exe],将你的代码翻译成计算机行为。上面的nodehello.js是运行NodeJS代码的唯一规则。很多知名的框架在项目启动的时候都会提供所谓的脚手架命令,但是对于新玩家来说,我不建议直接使用脚手架。这些脚手架做出来的目录结构对于新玩家来说是比较迷惑的,虽然这可能是最佳实践的结果,但是如果没有1、2、3步手拉手,萌新可能会直接退出游戏。新手真正的入门规则是按照各种教程一步步来。如果教程不好,请更改它们。不学走就不可能跑。一般的项目开始是这样的:明确项目需求(省略)创建项目目录初始化项目信息安装必要的依赖模块划分,代码系统集成,测试项目发布,维护升级用NodeJS实现大概是这样的过程:#创建项目mkdir[project-name]cd[project-name]#initprojectnpminit...#installdependenciesnpminstall#installdevdependenciesnpminstall-D#coding...#run和testnpm运行buildnpm运行startnpm运行testnpm运行停止#publishprojectnpmpublish。上一节是关于npm的。通过这个例子,你应该明白它在NodeJS中的重要性,所以让你的npm易于使用是非常有意义的。您可能会对示例中安装的两个依赖项感到有些困惑。可以这样理解,第一个依赖是项目运行时的必备依赖--save-prod,发布时必须安装;第二个依赖主要用于开发或测试--save-dev,比如一些调试包或测试框架,方便开发,项目部署时不需要安装。事实上,还可以安装第三种依赖——save-optional,例如,用于数据分析或其他增强。目前,Node支持区分这三类依赖包。语法演示NodeJS中的JS是JavaScript,是一种动态语言。命名规则与Java类似,但语法更接近各种动态语言,例如Python或Ruby。入门并不难,了解标准库和数据的基本类型,在IDE的支持下,就可以开始写代码了。//index.js项目入口文件varfs=require('fs');//导入标准库模块var_=require('lodash');//导入安装包varm=require('./hello');//在同一目录中导入模块importhellofrom'./test';//导入模块的一些对象m.say('yo..');//调用模块方法hello('toby');fs.copyFileSync(src,dst)//调用标准库方法模块编写示例://hello.jsvara='helloworld!';//模块的全局变量不会被导出functionsay(word){console.warn('say'+word);}functionhello(word){console.log('hello,'+word);}//export是给module.exports赋值module.exports={say:say,hello:hello}包管理小窍门先看一下npm包的安装位置。简单的说就是这个包的范围。如果安装包没有-g参数,则默认安装在当前目录。npminstall#=>会安装到./node_modules这个包只存在于当前目录(项目),方便环境隔离。不同的项目可以使用同一个包的不同版本等。-g如果在安装过程中包含-g参数,则表示该包是全局安装的,在系统的任何地方都可用。npminstall-g#=>会安装到/usr/local/lib/node_modules#=>或%AppData%\npm\node_modules一般包安装不需要-g,除了一些工具包,比如那些第一节介绍,让系统更干净,也可以避免全球包污染项目引发的各种灵异事件。--depth如果要查看安装了哪些全局包,可以使用这个命令:npmlist-g--depth=0如果不加--depth,我真的看不出来,我也不会不知道为什么设计这个列表的人没有默认这个参数,脑子被门夹住了。为了方便起见,您可以添加以下两个别名。aliasng="npmlist-g--depth=02>/dev/null"aliasnl="npmlist--depth=02>/dev/null"ncu使用NodeJS面向各种包,部分包升级很用心,想升级怎么办?哪些是过时的,哪些不是,npmupgrade命令真的很难用(记住)。npm-check-updates推荐大家学习一下:npminstallnpm-check-updates-g这么有用的东西当然要全局安装。用法非常简单。查看当前项目所有包的更新状态:$cdmy-project$ncuUsing/Users/tobyqin/src/blog/package.json[.......]|:以下依赖项声明的版本范围满足,但安装的版本落后。您可以使用npmupdate安装最新版本,而无需修改包文件。如果您仍然想更新包文件中的依赖项,请运行ncu-a。hexo^3.5.0→^3.7.1hexo-generator-search^2.1.1→^2.2.5hexo-server^0.3.1→^0.3.2使用ncu-a一键更新项目中的所有包,当然它也提供了一些过滤参数,你可以查看文档。如果想看全局包能不能更新,试试ncu-g,很方便。需要注意的一点是,命令虽然是ncu,但是包名不是,因为ncu的包名已经被一个天气预报包占用了,所以没有发言权。总结现在编写NodeJS项目非常容易。JS经过两三年的野蛮生长,诞生了数以千计的包(框架),其中不乏优质的包。作为一个搬砖的coder,npminstall运行一次就可以做出一个不错的demo。你还在犹豫什么?上车!作者简介:TobyQin,Python技术爱好者,目前从事测试开发相关工作,转载请注明原始出处。欢迎关注我的博客https://betacat.online,你可以去我的公众号做个吃瓜群众。