环境安装
nvm、nodejs、npm 的安装。
- nodejs
nodejs 是 JavaScript 的一种运行环境。在使用 vue-cli 的使用需要使用到 nodejs。
- npm
npm 是 node.js 的包管理器。JavaScript运行时 node.js 的默认程序包管理器。
- webpack
webpack是一个现代的JavaScript应用的静态模块打包工具。它将根据模块的依赖关 系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源,依赖Node.js运行,使用场景是把开发的源码打包发布。
- Vue
vue.js官方的脚手架项目使用了webpack对相关资源进行了打包优化。
nodejs
node.js 是基于 chrome v8 引擎的 js 运行环境。
事件驱动、非阻塞式 I/O 模型。 和 Redis 很像
因为 nodejs 的特性,就意味着 nodejs 主要用于 I/O 密集,少量业务逻辑和计算消耗的场景。
nvm
nvm 是一个 nodejs 的版本管理工具
查看可用版本
nvm list available
查看已安装版本
nvm list
nvm ls
切换 node 版本
nvm use 8.0.0
npm
npm 是 nodejs 的默认程序包管理器
npm 由两个主要部分组成
- 用于发布和下载程序的 CLI(命令行接口)
- 托管 js 程序包的在线存储库(npmjs.com)
发布 js 软件包
npm publish
package.json
将 package.json 视为快递盒子上的信息
package.json 在 npm init
的时候生成。
npm scripts
package.json 的 script 字段
{
"scripts": {
//运行 TypeScript 编译器,将 TypeScript 代码编译成 js 代码
"build": "tsc",
// 使用 prettier 将 .ts 文件格式化
"format": "prettier --write **/*.ts",
// 检查 ts 文件代码风格
"format-check": "prettier --check **/*.ts",
// 使用 ESLint 工具检查 ts 文件
"lint": "eslint src/**/*.ts",
// 使用 ncc 工具将 ts 项目打包
"pack": "ncc build",
// 运行 Jest 套件
"test": "jest",
// 执行上面所以的脚本
"all": "npm run build && npm run format && npm run lint && npm run pack && npm test"
}
}
version control
^
表示最新的次版本。^1.0.3
可能会安装1.3.0
~
表示最新的补丁程序版本,~1.0.4
会安装1.0.7
最终使用到的版本会记录在 package-lock.json
中
dependencies vs devDependencies
{
"dependencies": { // 通过 npm install --save 安装 (生产环境)
"@actions/core": "^1.2.3",
"@actions/github": "^2.1.1"
},
"devDependencies": { // 通过 npm install --save-dev 安装 (测试环境)
"@types/jest": "^25.1.4",
"@types/node": "^13.9.0",
"@typescript-eslint/parser": "^2.22.0",
"@zeit/ncc": "^0.21.1",
"eslint": "^6.8.0",
"eslint-plugin-github": "^3.4.1",
"eslint-plugin-jest": "^23.8.2",
"jest": "^25.1.0",
"jest-circus": "^25.1.0",
"js-yaml": "^3.13.1",
"prettier": "^1.19.1",
"ts-jest": "^25.2.1",
"typescript": "^3.8.3"
}
}
how to use npm
install
npm install <package-name>
npm install 会根据 package.json 将软件包下载到项目的 node_moudles
文件夹中
-g
表示全局安装。
npm install --production
仅仅安装 dependencies
的软件包。
npm ci
npm ci 用于在项目中安装依赖。
set up mirror
查看当前使用的 mirror
npm config get registry
- 腾讯云
npm config set registry http://mirrors.cloud.tencent.com/npm/
- 淘宝
npm config set registry https://registry.npmmirror.com
- 华为云
npm config set registry https://mirrors.huaweicloud.com/repository/npm/
查看镜像是否设置成功
npm config get registry
troubleshooting
https://kb.fit2cloud.com/?p=142
- node 和 npm 版本不匹配 https://nodejs.org/en/about/previous-releases
- 本地 npm 版本低
npm install -g npm
- 缓存问题
npm cache clean --fore
- 权限问题
- 项目缓存问题,删除
package-lock.json