Skip to content

install

Terminal window
curl https://get.volta.sh | bash
volta install node
node -v
npm -v
corepack enable pnpm
# 或
volta install pnpm
volta uninstall typescript
volta list
pnpm -v

使用 Volta

Terminal window
# 查看仓库路径
$ pnpm store path
# 安装包
$ pnpm add react
# 安装项目依赖
$ pnpm install
# 卸载包
$ pnpm remove react
# 升级依赖
$ pnpm update
Terminal window
npm init
npm install react
# 开发依赖
npm install vite -D
npm uninstall react
npm config list
npm get registry
npm config set registry https:xxx
npm ls -g
# 查看当前目录下的包
npm ls
npm uninstall -g zod
// 1. 引入自己编写的模块
// require('./index.js')
// 2. 引入第三方模块
// const fs = require('fs')
// 3. 引入nodejs内置模块
// const path = require('node:path')
// 导出模块
module.exports = {
name: "张三",
age: 18,
sayHello: function () {
console.log("Hello, " + this.name);
},
};
// 导入模块
const { name, age, sayHello } = require("./index.js");
// 导出模块
export default {
name: "张三",
age: 18,
sayHello: function () {
console.log("Hello, " + this.name);
},
};
export const role = "admin";
// 导入模块
import { name, age, sayHello, role } from "./index.js";
console.log(name, age, sayHello, role);
// 导入所有模块
import * as all from "./index.js";
console.log(all);
  • cjs 是基于运行时的同步加载,esm 是基于编译时的异步加载
  • cjs 是可以修改值的,esm 的值不可修改(只读)
  • cjs 不可以 tree shaking,esm 支持 tree shaking
  • cjs 中顶层的 this 指向这个模块本身,esm 中顶层的 this 指向 undefined
// 定义全局变量
globalThis.name = "张三";
// 内置全局变量
// __dirname 当前文件的目录
console.log(__dirname);
// __filename 当前文件的文件名
console.log(__filename);
// process.argv 当前进程的命令行参数
console.log(process.argv);
// process.cwd() 当前进程的工作目录
console.log(process.cwd());
// process.env 当前进程的环境变量
console.log(process.env);
// process.exit() 退出当前进程
process.exit();