Node
删除node_modules
Node.js社区公认的神器——rimraf
操作步骤
全局安装rimraf
(仅需一次):
bashbash 体验AI代码助手 代码解读 复制代码npm install rimraf -g一键删除:进入项目根目录,执行:
bashrimraf node_modules实测:一个5GB的10秒内删干净!
进阶用法
集成到npm脚本:在package.json
中添加脚本,直接运行npm run clean:
json{ "scripts": { "clean": "rimraf node_modules" } }跨平台兼容:无论是Windows、Linux还是macOS,命令完全一致,团队协作无压力。
Windows用户:用命令行暴力删除
CMD命令:
bashbash rmdir /s /q node_modules/s表示递归删除,/q表示静默执行(不弹窗确认)。
PowerShell(更快):
powershellpowershell Remove-Item -Force -Recurse node_modules
2. Linux/macOS用户:终端直接起飞
bash
rm -rf ./node_modules开启子线程
//main.js
import { Worker, isMainThread } from 'worker_threads';
import worker_1 from '../../../resources/worker_1.js?asset';
export function runWorker_1(data) {
return new Promise((resolve, reject) => {
if (isMainThread) {
let worker = new Worker(worker_1, {
workerData: data,
});
console.log(worker);
worker.on('message', (result) => {
switch (result.status) {
case 0: //识别进度
break;
case 1: //识别成功
resolve(result.data);
break;
}
});
// 监听工作线程的错误事件
worker.on('error', (error) => {
reject(error);
console.error('Worker error:', error);
});
// 监听工作线程的退出事件
worker.on('exit', (code) => {
if (code !== 0) {
console.error(`Worker stopped with exit code ${code}`);
}
});
// 向工作线程发送消息
worker.postMessage(data);
}
});
}electron中开启子进程
//main.js
import { fork } from 'child_process';
import worker from '../../../resources/worker.js?asset';
import { getByNameWindow } from '../windows';
let child;
export function runWorker(data) {
return new Promise((resolve, reject) => {
let mainWindow = getByNameWindow('main');
// 创建子进程
child = fork(worker);
// 向子进程发送数据
child.send(data);
// 监听子进程的消息
child.on('message', (result) => {
switch (result.status) {
case 0: //识别进度
mainWindow.send('task-progress', result.data); //向渲染进程发送识别进度
break;
case 1: //识别成功
resolve(result.data);
child.kill('SIGTERM');
break;
case 2: //识别失败
reject({ data: result.data, error: result.error });
child.kill('SIGTERM');
break;
}
});
});
}//worker.js
process.on('message', async (data) => {
switch (data.type) {
case 'runTask':
runTaskHandle(data.data);
break;
case 'stopTask':
isStop = true;
break;
}
});
function runTaskHandle(data){
process.send(data)
}node中使用better-sqlite3
const sqlite3 = require('better-sqlite3');
// 打开数据库,如果文件不存在会在目录下创建改文件
const DB = sqlite3('./example.db');
// 启用外键约束
DB.exec('PRAGMA foreign_keys = ON;');
// 创建表
DB.prepare(
'CREATE TABLE IF NOT EXISTS users(id TEXT PRIMARY KEY, name TEXT,task TEXT)'
).run();//创建users表 IF NOT EXISTS表示如果存在就不创建
const insert = DB.prepare('INSERT INTO users (id, name) VALUES (@id, @name)');
export const insertUser = DB.transaction((user) => {
insert.run(user);
});//DB.transaction()表示如果执行异常会回滚数据库 不会对数据产生影响npm清除缓存
npm cache clean --force安装模型相关依赖报错
npm ERR! code 1
npm ERR! path E:\mine\node-master\node_modules\sharp
npm ERR! command failed
npm ERR! command C:\Windows\system32\cmd.exe /d /s /c (node install/libvips && node install/dll-copy && prebuild-install) || (node install/can-compile && node-gyp rebuild && node install/dll-copy)
npm ERR! sharp: Using cached D:\node\node_cache\_libvips\libvips-8.14.5-win32-x64.tar.br
npm ERR! sharp: Integrity check passed for win32-x64
npm ERR! sharp: Creating E:\mine\node-master\node_modules\sharp\build\Release
npm ERR! sharp: Copying DLLs from E:\mine\node-master\node_modules\sharp\vendor\8.14.5\win32-x64\lib to E:\mine\node-master\node_modules\sharp\build\Release
npm ERR! prebuild-install warn install socket hang up
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using node-gyp@10.0.1
npm ERR! gyp info using node@18.20.1 | win32 | x64
npm ERR! gyp info find Python using Python version 3.12.4 found at "D:\Program Files\python\python.exe"
npm ERR! gyp ERR! find VS
npm ERR! gyp ERR! find VS msvs_version was set from command line or npm config
npm ERR! gyp ERR! find VS - looking for Visual Studio version 2022
npm ERR! gyp ERR! find VS VCINSTALLDIR not set, not running in VS Command Prompt
npm ERR! gyp ERR! find VS checking VS2022 (17.10.35122.118) found at:
npm ERR! gyp ERR! find VS "C:\Program Files\Microsoft Visual Studio\2022\Community"
npm ERR! gyp ERR! find VS - found "Visual Studio C++ core features"
npm ERR! gyp ERR! find VS - missing any VC++ toolset
npm ERR! gyp ERR! find VS could not find a version of Visual Studio 2017 or newer to use
npm ERR! gyp ERR! find VS looking for Visual Studio 2015
npm ERR! gyp ERR! find VS - not found
npm ERR! gyp ERR! find VS not looking for VS2013 as it is only supported up to Node.js 8
npm ERR! gyp ERR! find VS
npm ERR! gyp ERR! find VS valid versions for msvs_version:
npm ERR! gyp ERR! find VS
npm ERR! gyp ERR! find VS **************************************************************
npm ERR! gyp ERR! find VS You need to install the latest version of Visual Studio
npm ERR! gyp ERR! find VS including the "Desktop development with C++" workload.
npm ERR! gyp ERR! find VS For more information consult the documentation at:
npm ERR! gyp ERR! find VS https://github.com/nodejs/node-gyp#on-windows
npm ERR! gyp ERR! find VS **************************************************************
npm ERR! gyp ERR! find VS
npm ERR! gyp ERR! configure error
npm ERR! gyp ERR! stack Error: Could not find any Visual Studio installation to use
npm ERR! gyp ERR! stack at VisualStudioFinder.fail (D:\Program Files\nvm\v18.20.1\node_modules\npm\node_modules\node-gyp\lib\find-visualstudio.js:113:11)
npm ERR! gyp ERR! stack at VisualStudioFinder.findVisualStudio (D:\Program Files\nvm\v18.20.1\node_modules\npm\node_modules\node-gyp\lib\find-visualstudio.js:69:17)
npm ERR! gyp ERR! stack at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
npm ERR! gyp ERR! stack at async createBuildDir (D:\Program Files\nvm\v18.20.1\node_modules\npm\node_modules\node-gyp\lib\configure.js:69:26)
npm ERR! gyp ERR! stack at async run (D:\Program Files\nvm\v18.20.1\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js:81:18)
npm ERR! gyp ERR! System Windows_NT 10.0.22631
npm ERR! gyp ERR! command "D:\\Program Files\\nodejs\\node.exe" "D:\\Program Files\\nvm\\v18.20.1\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
npm ERR! gyp ERR! cwd E:\mine\node-master\node_modules\sharp
npm ERR! gyp ERR! node -v v18.20.1
npm ERR! gyp ERR! node-gyp -v v10.0.1
npm ERR! gyp ERR! not ok安装包含必要组件的 Visual Studio:
- 下载并安装 Visual Studio Community。
- 在安装过程中,选择“使用C++的桌面开发”工作负载。确保包含以下组件:
- MSVC v143 - VS 2022 C++ x64/x86 构建工具
- Windows 10 SDK (10.0.20348.0)
确保 Python 正确安装并可访问:
确保已安装 Python 3.x 并将其添加到 PATH 中。你可以通过在命令提示符中运行
python --version来验证这一点。bashnpm config set python D:\\Program Files\\python\\python.exe
清理 npm 缓存并重新安装:
运行以下命令以清理 npm 缓存并重试安装:
bashbash复制代码npm cache clean --force npm install
将 msvs_version 变量设置为正确的 Visual Studio 版本:
你可以在 npm 配置中设置
msvs_version变量,以明确使用已安装的 Visual Studio 版本。在终端中运行以下命令:
bash复制代码 npm config set msvs_version 2022
检查现有安装和配置:
- 确保没有与 Visual Studio 或其他构建工具冲突的安装,这可能会干扰
node-gyp。
- 确保没有与 Visual Studio 或其他构建工具冲突的安装,这可能会干扰
完成这些步骤后,尝试再次运行 npm install @xenova/transformers。如果问题仍然存在,请提供新的错误日志以便进一步协助。
快速删除node_modules(使用rimraf)
借助一个命令行工具rimraf即可实现秒删除,如下是具体的操作流程:
(1)先全局安装 rimraf
npm install -g rimraf(2)执行命令删除
rimraf node_modules使用npx:
npx rimraf node_modules删除设备上所有的node_modules(npkkill)
使用Volta
更改Volta安装路径
windows安装前先设置环境变量
通过环境变量 VOLTA_HOME 指定 Volta 的安装路径。
步骤:
打开“环境变量”设置:
- 右键点击“此电脑”或“我的电脑”,选择“属性”。
- 点击“高级系统设置”。
- 在“系统属性”窗口中,点击“环境变量”。
添加新的系统变量:
- 在“系统变量”部分,点击“新建”。
- 输入以下内容:
- 变量名:
VOLTA_HOME - 变量值: 自定义路径(例如
D:\Program Files\Volta)
- 变量名:
点击“确定”保存。
- bash
# 在终端使用命令安装 winget install Volta.Volta 默认安装路径是在C:\Program Files\Volta,将C:\Program Files\Volta文件下的内容复制到D:\Program Files\Volta文件下,然后删除C:\Program Files\Volta。
修改环境变量。在系统环境变量中找到Path,点进去,找到C:\Program Files\Volta,将其修改成D:\Program Files\Volta或者使用上面定义的变%VOLTA_HOME%
设置镜像源hooks.json文件路径
全局配置路径
Linux/MacOS中 ~/.volta/hooks.json Windows中 %LOCALAPPDATA%\Volta\hooks.json
项目配置
在项目的.volta 子目录中指定的钩子(<PROJECT ROOT>/.volta/hooks.json)将只在该项目中应用。这里的 <PROJECT ROOT> 被定义为 package.json 所在目录。
hooks.json文件配置
{
"node": {
"index": {
"template": "https://mirrors.aliyun.com/nodejs-release/index.json"
},
"latest": {
"prefix": "https://mirrors.aliyun.com/nodejs-release/"
},
"distro": {
"template": "https://mirrors.aliyun.com/nodejs-release/v{{version}}/{{filename}}"
}
},
"npm": {
"index": {
"prefix": "http://mirrors.tencent.com/npm/"
},
"latest": {
"bin": "~/npm-latest"
},
"distro": {
"template": "https://mirrors.tencent.com/npm/npm/-/npm-{{version}}.tgz"
}
},
"pnpm": {
"index": {
"prefix": "http://mirrors.tencent.com/npm/"
},
"distro": {
"template": "https://mirrors.tencent.com/npm/pnpm/-/pnpm-{{version}}.tgz"
},
"format": "npm"
}
}Volta Node版本安装和控制
Node及pnpm安装
volta install node@18.17.1
volta install pnpm项目版本固定
volta pin node@18.17.1node版本管理fnm
安装:

windows下载fnm-windows.zip

设置环境变量:


2 终端脚本设置(这里以 PowerShell 为例)
- 打开 PowerShell 窗口,输入命令
notepad $profile(如提示找不到文件,按指引创建即可),if (-not **(**Test-Path $profile)) { New-Item $profile -Force } - 终端命令notepad $PROFILE 复制添加以下内容: fnm env --use-on-cd --shell powershell | Out-String | Invoke-Expression
使用
# 查看所有远程可供安装的 Node 版本
fnm list-remote
# 安装node版本
fnm install <version>
# 切换node版本
fnm use <version>
# 查看当前版本
fnm current
# 查看已经安装的node版本
fnm list
# 设置默认版本
fnm default <version>指定项目node版本
1.package.json 文件中指定:设置以下字段。
{
“engines”: {
“node”: “>=18.0.0”
}
}自动切换node.js版本
- 在项目根目录下新建 .node-version 文件
- 如指定使用 22 大版本的 node.js,在文件中添加以下内容:
# 版本号
v22写入版本号: 您可以使用以下命令之一来创建文件并写入版本号: 方法一(推荐):使用 node --version 这会将您当前正在使用的 Node.js 版本号写入文件。
node --version > .node-version方法二:手动指定版本 将 18.17.0 替换为您需要的版本号。
echo "18.17.0" > .node-versionfnm配置

具体释义如下: $env:FNM_NODE_DIST_MIRROR:指定 Node.js 分发包的镜像地址。 $env:FNM_VERSION_FILE_STRATEGY:定义如何处理版本文件。 $env:FNM_ARCH:指定系统的架构类型。 $env:FNM_MULTISHELL_PATH:指定用于管理多 Shell 会话的路径。在使用多个终端或 Shell 的情况下,Fnm 会在该路径下创建相应的目录,以便管理不同 Shell 会话的 Node.js 版本。 $env:FNM_COREPACK_ENABLED:启用或禁用 Corepack。 $env:FNM_RESOLVE_ENGINES:确定是否解析引擎版本。 $env:FNM_LOGLEVEL:设置 Fnm 的日志级别,默认值info,可选值quiet, error, info。 $env:FNM_DIR:指定 Fnm 的安装目录。
设置镜像地址:创建环境变量

或者终端:notepad $PROFILE 然后输入$env:FNM_NODE_DIST_MIRROR = "https://npmmirror.com/mirrors/node/"
配置npm 全局安装路径

这样npm install -g pnpm 就会被安装到指定的位置