# NodeJS

# Flag

node执行脚本时获取参数process.argv数组,下标0为执行程序的绝对路径,下标1为脚本的绝对路径, 所以真正的参数从下标2开始process.argv.splice(2)

# 构建打包

# 第三方库

# 管理NodeJS

# 检查Node.js和NPM版本
node -v && npm -v

NVM

nodeJs版本管理工具,管理nodejs版本和npm版本

curl -o- https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash
# 刷新
source ~/.bashrc
# 查询最新版本号
nvm ls-remote --lts
# 安装稳定版 Nodejs
nvm install <最新的版本号>

# 依赖管理

# 管理yarn

# 安装
npm install -g yarn

卸载

# 查找目录并删除
yarn global bin
# 卸载
npm uninstall -g yarn

# 依赖镜像

  • npm i -g nrm 安装nrmnrm ls 查看下载镜像源,nrm use taobao 切换镜像源

更多镜像源

手动配置

如果使用yarn,就把命令开头的npm替换为yarn

# 查看仓库地址
npm config get registry

# 设置官方仓库地址
npm config set registry https://registry.npmjs.org

# 设置淘宝镜像仓库地址
npm config set registry https://registry.npmmirror.com

# 查看代理地址
npm config get proxy
npm config get https-proxy

# 设置代理地址
npm config set proxy http://127.0.0.1:1080
# 设置https代理地址
npm config set https-proxy http://server:port

# 设置代理用户名和密码
npm config set proxy http://username:password@server:port
npm confit set https-proxy http://username:password@server:port

# 删除代理地址
npm config delete proxy
npm config delete https-proxy

# 更新依赖包

yarn

yarn.lockpackage.json都会更新,但是会进行版本锁定

  • 更新所有到最新版本

需要手动选择升级的依赖包,a键选择所有,i键反向选择

yarn upgrade-interactive --latest
  • 更新单个到指定版本
yarn upgrade package@latest

npm

更新dependencies到最新版本

# 先检查更新
npm outdated
# 安装
npm install -g npm-check-updates
# 检查可更新依赖,ncu
npm-check-updates
# 更新,ncu -u
ncu --upgrade
# 安装最新版本依赖
npm install

# yarn和npm命令

npm yarn 说明
npm install(i) yarn/yarn install 根据package.json安装依赖
npm uninstall(un) 包名 –-global(-g) yarn global remove 包名 卸载全局依赖包
npm uninstall(un) 包名 -–save(-S) yarn remove 包名 卸载依赖,并删除package.json中的
npm uninstall(un) 包名 -–save-dev(-D) yarn remove 包名 –dev(-D) 卸载开发环境依赖
npm install 包名 –-global(-g) yarn global add 包名 安装全局依赖包
npm install 包名 -–save(-S) yarn add 包名 安装依赖,并保存到package.json
npm install 包名 -–save-dev(-D) yarn add 包名 –dev(-D) 安装开发环境依赖
npm update 包名 –-global(-g) yarn global upgrade 包名 更新全局依赖
npm update 包名 -–save(-S) yarn upgrade 包名 更新依赖
npm update 包名 -–save-dev(-D) yarn upgrade 包名 –dev(-D) 更新开发环境依赖
npm cache clean yarn cache clean 清除缓存
rm -rf node_modules && npm install yarn upgrade 重装
npm init yarn init 初始化某个项目
npm publish/login/logout yarn publish/login/logout 发布/登录/登出,NPM Registry操作
npm run/test 命令 yarn run/test 命令 运行某个命令

# 正式发布包

不要使用其他npm源,如:taobao

# 先去https://www.npmjs.com注册个账号,然后在命令行使用
# 根据提示输入用户名密码即可
npm adduser
# 发布
npm publish

# 升级补丁版本号
npm version patch
# 升级小版本号
npm version minor
# 升级大版本号
npm version major

# 解析

/**
 * https://www.npmjs.com/search?q=keywords:xml2js
 */

const fs = require("fs");
//模拟发送http请求
const request = require("request");
// npm install xpath
// https://github.com/yaronn/xpath.js
const xpath = require('xpath');

//get请求
request('https://jolx-1256021553.cos.ap-chengdu.myqcloud.com', function (error, response, body) {
    if (!error && response.statusCode == 200) {
        // npm install xmlreader
        // const xmlreader = require("xmlreader");
        // xmlreader.read(body, function (errors, res) {
        //     if (null !== errors) {
        //         console.log(errors)
        //         return;
        //     }
        //     console.log(res);
        // });

        // npm install xml2js
        // const Xml2js = require('xml2js');
        // const Parser = new Xml2js.Parser({ explicitArray: false, ignoreAttrs: false });

        // Parser.parseString(body, function (err, result) {
        //     console.log(result);
        // });

        // npm install xmldom
        // https://github.com/goto100/xpath
        // const dom = require('xmldom').DOMParser;
        // let doc = new dom().parseFromString(body);
        // console.log(doc);

        // npm install fast-xml-parser
        // const parser = require('fast-xml-parser');
        // const doc = parser.parse(body);
        // console.log(doc);

        // npm install xml-js
        const convert = require('xml-js');
        const doc = convert.xml2js(body);
        console.log(doc);
    }
});

//post请求
request({
    url: "https://jolx-1256021553.cos.ap-chengdu.myqcloud.com",
    method: "post",//如果是post就涉及到跨域的问题了
    json: true,
    headers: {
        "content-type": "application/json",
    },
    body: {
        account: 'admin',
        pwd: 'admin'
    }
}, function (error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
});

# 爬虫

xpath和css选择器

chromedriver

脚本

# 小程序

框架

Other

# 自定义组件

组件库

日历

授权

搜索