其实就是寒假比较无聊搭了这个自己的博客网站,主要是为了提高自己的服务器的利用率,但是最后发现内容实在是少了点,因此去了趟CSDN,把自己的旧博客迁移到了bolgs.nightowl.top
上面。起初搭建完成并模仿大佬们植入3D插件和下雪的插件觉得挺好的,但是后来发现其实在编辑的时候还是可以的,但是发布之后无论是手机端还是web端后不太便于阅读,加上没有CSDN这样的社区,自己写的东西也没人看,感觉不太好玩的牙子,因此决定连夜扛着火车跑路。好啦,废话不多说,直接进入正文。
node.js本质上是一个基于chrome浏览器的V8引擎的js运行环境。换句话说node.js能够执行很多系统级别的api,跨域、文件读写等都能够突破浏览器的安全沙箱的限制。
1.node.js的版本管理工具——nvm
有些时候可能需要切换node.js的版本,因此需要使用到nvm工具(node version manager)。下载位置:https://github.com/coreybutler/nvm-windows/releases,windows选择setup.zip文件,也就是第三个。下载完成之后,下载node安装包,先安装node,然后安装nvm,在安装nvm的时候的systemlink将路径指向nodejs的安装目录即可。
但是需要下载对应的版本的node,主要是用来管理电脑上的多个node版本。其他功能如下可以使用nvm --help,比如:查看当前的计算机位数和node位数,安装install,关闭(打开)版本管理,安装node版本、设置默认版本等。
2.npm全局安装和局部安装
至于npm的全局安装和局部安装,需要明确如下几种用法:
(1)npm init -y创建依赖说明文件:
(2)npm install * 局部安装依赖,也就是说安装完成之后,依赖可以在不同的文件夹中使用。
需要注意的是vscode中的集成终端会报错,需要使用windows自带的cmd工具,可能是由于文件命名含有中文导致的。–dev说明是生产环境安装,-save指的是保存依赖信息到package.json文件里面。这里不是全局安装,因此需要重新调整路径到gulp目录下,也可以手动修改package.json文件,修改脚本,scripts部分,修改为:“test”:“gulp -v”,然后执行npm run test,执行的流程是先找当前目录下的gulp,如果找不到,那么去找node_modules目录下的gulp文件。
(3)npm install * -g 全局安装,需要明确全局安装的位置为:C:\Users\用户名\AppData\Roaming\npm\node_modules
。也就是意味着删除依赖还可以直接去这个目录直接手动删除依赖。
(4)npm list 查看安装的依赖之间的内部依赖情况,因为一个包可能还会使用到其他的依赖包,也就解释了安装jquery很少,但是安装gulp却安装了很大一个安装包。npm list | grep gulp只展示当前环境下包的版本,也就是做一个依赖包的筛选。
3.开发环境安装与生产环境安装
其实安装依赖包的时候不仅可以区分全局和局部,还可以直接区分开发和生产安装。-S安装到生产环境,-D安装到开发环境。在运维上,一般拿到git文件之后,只需要使用npm i --production只安装生产环境下的依赖。
4.其他常用的npm语法
(1)查看某个依赖的具体版本:npm view * versions;
(2)安装具体的某个依赖的具体版本:npm i (依赖名称)@(版本号)-S(或者-D)
5.版本号里面的讲究
一般软件版本号分为三个等级(..*),从左到右依次是major,minor,patch。major一般是用于大的版本更新,比如系统整改;minor主要是用于主版本号不变的情况下来增加新功能,patch一般是用来debug(一般情况加patch为偶数表示稳定的patch,奇数表示不稳定的patch)。其次,安装版本的时候我们会你发现这个:
这里面有一个上箭头,其实^表示的是只锁定主版本号(默认就是取最新的版本号),~表示锁定主版本号和次版本号(默认patch最新),*表示的是锁定到patch。npm outdate查看当前使用的依赖的过期情况。
6.npm上传包
我们不仅能够使用别人上传的数据包,还能够自己写npm依赖包供其他人使用。下面简单说一下如何发布包管理工具:
由于main.js中设置的入口函数(main)为index.js,因此首先需要在index.js中写必要的函数导出代码,这样方便给别人使用,比如如下程序:
const _ = require("lodash");
function myFunction(arr) {
return _.chunk(arr, 2);
}
module.exports = myFunction;
使用案例如下(同目录下使用test.js,需要npm install lodash依赖,执行node test.js):
let test = require("./index.js");
console.log(test([1, 2, 3, 4]));
包的代码测试完成之后,接下来就是发布代码了。首先需要使用npm adduser
来发布作者信息,结果报错如下,主要是因为使用的镜像不对:(这里用的是淘宝镜像)
解决方法是切换npm的镜像:npm config set registry https://registry.npmjs.org
,然后根据提示输入账号、密码和邮箱验证码(没有账号注册一个:https://www.npmjs.com/
)。接下来修改一下必要的配置信息:
最后执行npm publish
就能够发表,发表之后展示如下:
最后,对于发布的npm包的使用,和正常的npm包的使用一致,先npm install 安装一下,然后直接引入moonlight1224依赖,然后直接调用就行。修改之后直接使用npm publish就能够修改已上传的版本了。