首页 > 编程语言 >nvm 自动化切换项目node版本

nvm 自动化切换项目node版本

时间:2024-05-17 18:10:12浏览次数:14  
标签:node const x1b nvmrc 切换 nvm

nvm 自动化切换项目 node 版本

在一些项目中经常会忘记在 readme 中写项目运行的版本,而且一点都不工程化。这里给出一些方法让项目切换版本更加顺畅。

流程

  • 第一步 将对应的 nvm 安装完成,教程很多就不赘述了。

  • 第二步 在项目根目录下运行命令行

    node -v > .nvmrc
    
  • 第三步 在 package.json 中添加脚本

      "scripts": {
          "node-v":"node nodeSwitch.js"
      },
    

    在根目录下创建脚本 nodeSwitch.js

    const fs = require("fs");
    const os = require("os");
    const { execSync } = require("child_process");
    
    if (fs.existsSync(".nvmrc")) {
     const nvmrcContent = fs.readFileSync(".nvmrc", "utf8").trim();
     const nvmVersion =
      os.platform() === "win32"
       ? execSync("type .nvmrc", { encoding: "utf8" }).trim()
       : nvmrcContent;
     try {
      execSync(`nvm use ${nvmVersion}`, { stdio: "inherit" });
      console.log("\x1b[32m%s\x1b[0m", "Node.js 版本切换成功");
     } catch (error) {
      console.error(
       "\x1b[31m%s\x1b[0m",
       "Node.js 版本切换失败 Check installation nvm"
      );
     }
    } else {
     console.error("\x1b[31m%s\x1b[0m", ".nvmrc 文件不存在");
    }
    

这样在切换项目时可以直接使用

npm run node-v

注意

有文章指出在 windows 中的 nvm 中使用 nvm use 不生效,这是因为在 windows 系统安装的是 nvm-window,这个是不支持读取.nvmrc 文件配置,只有在 mac 和 Linux 系统中支持。

标签:node,const,x1b,nvmrc,切换,nvm
From: https://www.cnblogs.com/GoodMemoryBlog/p/18198292

相关文章

  • 不一样的WPF多语言切换方案
    前言作为技术而言,我并不认为多语言有什么值得深入研究的地方,本来也没打算开这个话题。前段时间看到了群里有朋友在讨论这个,一想到它确实也算一个比较常用的功能,所以决定对它做一个封装,如果您正好需要,希望对您有帮助。多语言切换一般有两种方案,一种是使用资源字典(xaml文......
  • node加速镜像源 管理工具nrm安装使用
     我们在开发node.js的时候,经常会遇到某些包无法下载,或者下载太慢,还有需要加载我们自己是有源中的包的问题,今天推荐给大家的这款nrm镜像源管理工具就是解决这类问题的. 安装方法也很简单,执行npminstallnrm-g就可以安装#安装nrmnpminstallnrm-g#添......
  • Node中的事件循环
    前段时间较为系统性的学习了node,在学习过程中发现其中的事件循环机制与浏览器中的有很大的不同,今天特意查找相关资料,整理node的事件循环机制。1.异步API       以上三个异步操作分别对应Timer、Poll、Check队列;2.事件循环顺序自上而下依次执行,会......
  • 打开、关闭、切换App以及清除App进程,操作so easy!
    此文章来源于项目官方公众号:“AirtestProject”版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途#一、前言很多新手同学在写自动化测试脚本的时候,打开、关闭、切换App的方式还是使用最基础的方式,也有同学在交流群内多次询问是否有打开、关闭、切换App以及清除A......
  • 网页布局------鼠标点击标签切换内容
    网页结构<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Document</title&......
  • springboot集成@DS注解实现数据源切换(转载)
    springboot集成@DS注解实现数据源切换启用@DS实现数据源切换POM内添加核心jar包yml配置"核心"-使用@DS注解最后启用@DS实现数据源切换POM内添加核心jar包 <dependency><groupId>com.baomidou</groupId><artifactId>dynamic-datasource-spring-boot-start......
  • 彻底解决 node node-sass sass-loader版本兼容问题
    原文地址https://www.cnblogs.com/easy1996/p/17945874直接放弃node-sass,使用dart-sass无缝替换。node-sass与dart-sass区别:node-sass是用node(调用cpp编写的libsass)来编译sass。dart-sass是用dratVM来编译sass。node-sass是实时自动编译的,dart-sass需要保......
  • 日志报错监控,nodejs实现服务器日志监控,发现指定错误,发送到微信群
    nohupnodelog2.js>log_output.log2>&1&constfs=require('fs');constrequest=require('request');constschedule=require('node-schedule');constmoment=require("moment-timezone");constl......
  • NODEJS通过发送json数据查询目标服务,实现服务器状态监控,发现异常发送到微信群提醒
    root@aea87fa6e6a2:/home/node#catlogin2.jsconstrequest=require('request-promise');constmoment=require('moment');constcron=require('node-cron');process.env.TZ='Asia/Shanghai';//设置时区为上海时区constrp......
  • OPCUA NodeSet XML 下载地址
    官网下载reference.opcfoundation.org/nodesets有各个模型的下载网址 2、GitHub GitHub-OPCFoundation/UA-Nodeset:UANodeset    完整的文件,文件名称——PLCModelbasedonIEC61131-3_1172761404.xml<?xmlversion="1.0"encoding="utf-8"?><!--......