Node.js入门笔记(二)——npm脚本、跨平台、nrm等入门工具

2023-11-07

1.解决一个关于node的配置问题

    使用Windows中的cmd和powershell都能够正常使用node环境变量,但是发现对于vscode,使用vscode中嵌套的终端倒不是很行,使用时报错如下:
在这里插入图片描述
解决方法:将node.exe复制到C:\Users\Administrator\AppData\Roaming\npm目录下面,其实node本来是配置了环境变量的,配置使用node只能利用windows提供的cmd就显得有点麻烦(可能是vscode的bug)。需要注意的是这种操作可能导致nvm对于node的管理失效,毕竟nvm在安装的时候node的位置是已经确定的,当然整体上来说node版本切换用的不是很频繁,所以可以这样将就一下,在涉及到node版本问题的时候先执行一下node -v

2.npm 脚本的深层使用

    对于package.json文件中的scripts自定义脚本来说,其实像dev,build这些自定义的脚本支持同步和异步执行,举例如下:
在这里插入图片描述
    npm自定义脚本时,如果使用&&连接两个不同的任务那么这两个任务将是同步执行的,如果使用&连接两个不同的任务那么这两个任务将会是异步执行的。另外npm 脚本具有默认的识别功能,比如npm run test|start这两种自定义脚本中间的run可以省略。说实话,我拿着大佬的思路(https://blog.csdn.net/weixin_33922672/article/details/91372776)跑一下还是同步的,只能说存疑。代码与思路如下:

//test01.js:
console.log("start index1");
setTimeout(() => {console.log("end index1");}, 6000);
//test02.js:
console.log("start index2");
setTimeout(() => {console.log("end index2");}, 3000);

    如果是同步的话,那么将会打印:start index1,start index2,end index2,end index1。但是实际还是按照固定的顺序输出的。

3.获取npm里面的参数

    我们发现在package.json文件里面有很多参数,像版本号等信息可能我们需要在程序中使用,对应的使用方法如下:
console.log(process.env.npm_package_name);(直接使用process.env能过获取到很多其他的文件路径信息),对于package.json里面的参数需要利用npm_package_(具体的参数名)实现获取。也可以在package.json中自定义字段。但是需要注意的是:
(1)访问字段的时候只能详细获取某个值而不能是对象,否则直接undefined。
(2)如果想要在package.json文件中访问文件目录下的内容,那么可以使用$npm_package_(具体的参数名),但是真机测试没有效果。

4.node 跨平台工具——cross-env

    能够使程序既能够运行在Linux系统上,又能够运行在windows系统上,,使用方式为,npm i cross-env,然后在每一个scripts脚本前面加上cross-env

5.执行npm脚本并传入参数


在这里插入图片描述
    这样就能够区分不同的生产模式,然后分开书写对应的逻辑了。

6.nrm镜像源管理工具的使用

    NRM主要用于切换国外的镜像源,方便我们更快地下载需要的依赖,使用方式:先使用 npm i nrm安装,然后可以使用nrm test查看镜像源的连接速度,还可以使用nrm use 快速切换镜像源,就不用输入 npm config set registry http://registry.npm.taobao.org 了。
在这里插入图片描述

7.npx工具的使用

    前面我们使用npm 局部安装gulp,之后切换文件目录执行gulp -v发现失效,解决方法除了再次安装或者全局安装,修改scripts脚本利用脚本来帮助我们识别。 还可以直接使用npx gulp-v,实现的原理是,扫描gulp依赖,如果没有gulp依赖,那么会从源上下载到一个临时文件夹中,等使用完成之后便会删除该依赖。(换句话说,不会污染使用到的依赖环境)。
    需要注意的是npx有两种参数:--no-install(强制npx不去下载依赖,只能够使用本地依赖,如果本地依赖不存在,那么直接报错),--ignore-existing(强制使用源上面的依赖,忽略本地已经存在的依赖)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Node.js入门笔记(二)——npm脚本、跨平台、nrm等入门工具 的相关文章

  • JavaScript - 无需布尔值即可运行一次

    有没有办法只运行一段JavaScript代码ONCE 而不使用布尔标志变量来记住它是否已经运行过 具体来说not就像是 var alreadyRan false function runOnce if alreadyRan return a
  • 您可以将现有的 div 复制到模式对话框吗

    我有一个带有多个面板的仪表板来显示不同的信息 我希望能够添加一个按钮来以模式显示面板 我正在使用引导程序 我所能找到的只是已经编写的模态 我想复制作为面板的 div 标签的内容 然后将其显示在模型中 但我不确定如何进行 该面板的 html
  • Javascript 在另一个函数中检测“Shift”键按下

    我正在从 Flash 影片 使用外部接口 调用我的 html 页面中的 Javascript 函数 并且我想知道调用该函数时用户是否按下了 Shift 键 例如 如果我通过鼠标单击调用该函数 这似乎很简单 因为我可以传递事件并检查 if e
  • NestJS e2e 测试模拟会话装饰器

    我正在尝试使用 supertest 编写一个 e2e 测试 其中我的控制器实际上使用了 Session 装饰师 然而 我不想承担使用数据库连接等启动会话的全部负担 因此测试中的我的应用程序实际上并未初始化会话 相反 我想首先模拟掉装饰器提供
  • Angularjs 完整日历不显示事件

    我正在用那个https github com angular ui ui calendar https github com angular ui ui calendar在 Angularjs 中使用 FullCalendar 它显示日历并
  • 如何在php中使用一张图像绘制形状

    我需要使用图像的一部分来创建帧图像 例如 用户将从后端上传图像片段 现在我需要根据前端用户的要求在前端创建一个框架 用户将选择框架的高度和宽度 然后他将选择该图像片段 如下所示 我没有办法做到这一点 我尝试通过 css 和 html can
  • firebase 和 firebase-admin npm 模块有什么区别?

    我想使用 Firebase 身份验证 数据库和存储 构建 Node js Web 应用程序 但我对应该使用哪个模块感到困惑 firebase or firebase 管理员 或两者 管理 SDK 运行您的代码管理权限 https fireb
  • 游戏手柄 JavaScript 未能按预期更新

    我正在尝试让浏览器报告我的 XBOX 控制器的状态 然而 在第一次按下按钮后 它似乎变得 卡住 我究竟做错了什么
  • 将异步事件监听器与 Nestjs EventEmitter 模块和无服务器函数结合使用

    我正在尝试在 Nestjs EventEmitter 模块的帮助下实现具有无服务器 lambda 函数的异步工作线程 处理程序在发出事件时被调用 但该函数在 async await 调用之前关闭 我尝试过同时使用emit and emitA
  • “|”是什么意思(单管道)在 JavaScript 中做什么?

    console log 0 5 0 0 console log 1 0 1 console log 1 0 1 为什么0 5 0返回零 但任何整数 包括负数 都返回输入整数 单管道 有什么作用 这是一个按位或 https developer
  • 根据特定字符获取整个字符串或子字符串

    我有一个包含 MIME 类型的字符串 例如application json 现在我想将其与实际的 HTTP 标头进行比较 在本例中content type 如果标头包含 MIME 类型 那么就很简单 if mimeType contentT
  • JavaScript 中的实时摩尔斯电码转换器

    在看到谷歌关于莫尔斯电码 gmail 的愚人节笑话后 我想我应该尝试用 javascript 创建一个实时莫尔斯电码转换器 我正在使用正则表达式和替换将莫尔斯电码更改为字符 例如 replace g a replace g r 我遇到的问题
  • Aurelia - 仅 HTML 自定义元素的内联定义

    我的 Aurelia 视图模型中有一个递归对象 如下所示 Class BottomlessPit Name string MorePits BottomlessPit null 因此 我想在 Aurelia 视图中使用递归模板 它只会在一个
  • 不使用控件时,视频元素在 Chrome 中消失

    So I think这是一个浏览器错误 它出现在一个更复杂的设计 网站中 但我已经进行了很好的尝试 简化了我的代码和设计等 并发现了以下内容 嵌入时
  • Javascript 中 if 语句中的假值?

    过去两周 我在学校研究 JavaScript 的事情已经有一段时间了 而且我一直在做我的作业 在 Douglas Crockford 所著的 JavaScript The Good Parts 一书中 作者在第 11 页上列出了 if 语句
  • 如何:带有 onclick 的 div 位于另一个带有 onclick 的 div 中

    只是一个简单的问题 我遇到了 div 与 onclick javascript 之间的问题 当我点击内部 div 时 它应该只触发它的 onclick javascript 但外部 div 的 javascript 也会被触发 用户如何点击
  • 搜索多维数组 JavaScript

    我有一个如下所示的数组 selected products 0 r1 7up 61 Albertsons selected products 1 r3 Arrowhead 78 Arrowhead selected products 2 r
  • D3 将现有 SVG 字符串(或元素)追加(插入)到 DIV

    我到处寻找这个问题的答案 并找到了一些我认为可能有用的资源 但最终没有让我找到答案 这里有一些 外部SVG http bl ocks org mbostock 1014829 嵌入SVG https stackoverflow com qu
  • 如何获得 JavaScript 阶乘程序的循环来显示所使用的工作?

    你好 我面临着用 JavaScript 编写一个程序的挑战 尽管我对它不太了解 但它要求用户输入一个数字 然后计算该数字的阶乘 我使用了已经提出的问题并设法使计算正常工作 但无法获得所需的输出 我必须在以下输出中获取它 而不使用任何花哨的库
  • 用javascript调用外部网页(跨域)

    我正在尝试使用以下网络服务来验证提要这个问题 https stackoverflow com questions 11996430 check if a url is a valid feed 但浏览器不允许我向另一台服务器发送 ajax

随机推荐

  • 文件包含中的伪协议

    文件包含中的伪协议 1 利用前提 1 web 应用采用 include 等文件包含函数 并且需要包含的文件路径是通过用户传输参数的方式引入 2 用户能够控制包含文件的参数 被包含的文件可被当前页面访问 3 在使用文件包含漏洞时 必须要能知道
  • Git 常用命令详解

    原文 https blog csdn net ithomer article details 7529022 Git 是一个很强大的分布式版本管理工具 它不但适用于管理大型开源软件的源代码 如 linux kernel 管理私人的文档和源代
  • PyQt5的QtWidgets模块介绍

    目录 前言 一 PyQt5的QtWidgets介绍 二 主要类的用法 1 QApplication 2 QMainWindow 3 QWidget 4 QLabel 5 QPushButton 6 QLineEdit 7 QTextEdit
  • Arduino和LabVIEW射频温度监控系统

    该项目将要设计使用RF调制解调器的温度监控系统 该系统分为两部分 1 发送器部分和 2 接收器部分 发送器部分包括Arduino Uno 电源 温度传感器 LCD和RF调制解调器 接收器部分包括Arduino Uno 电源 PC LabVI
  • Oracle使用序列+触发器实现表自增主键

    1 建表 Create table 创建表 test create table TEST testid NUMBER not null name NVARCHAR2 20 not null comment 注释 comment on col
  • 【HBZ分享】Clickhouse高性能剖析--稀疏索引

    简介 密集索引 与 稀疏索引的介绍 1 密集索引 在密集索引中 数据库中每个键值都有一个索引记录 可以加快搜索速度 但需要更多空间来存储这些索引本身 索引记录包含键值 和 指向磁头上实际记录的指针 2 稀疏索引 稀疏索引不会为每个关键字创建
  • 购物小程序怎么做,一篇文章get!

    购物小程序是近年来越来越受欢迎的一种电商模式 它以便捷 快速 个性化的购物体验赢得了广大用户的青睐 如果你也想高效开发一款购物小程序 那么下面就来简单介绍一下步骤 步骤一 确定目标用户和产品特点 首先 我们需要明确目标用户和产品特点 要知道
  • 2023华为OD机试真题【乱序整数序列两数之和绝对值最小/二分法】【2023.Q2】

    题目内容 给定一个随机的整数 可能存在正整数和负整数 数组 nums 请你在该数组中找出两个数 其和的绝对值 nums x nums y 为最小值 并返回这个两个数 按从小到大返回 以及绝对值 每种输入只会对应一个答案 但是 数组中同一个元
  • 【面试题】如何理解 前端设计模式-测策略模式?

    前端面试题库 面试必备 推荐 地址 前端面试题库 国庆头像 国庆爱国 程序员头像 总有一款适合你 什么是策略模式 策略 Strategy 模式的定义 该模式定义了一系列算法 并将每个算法封装起来 使他们可以相互替换 且算法的变化不会影响使用
  • APP移动应用测试策略与工具思维导图

    2张图构建移动应用测试知识体系 1 APP移动测试策略 2 移动测试常用工具 目前觉得好用的 因还有其它事 故这里不再啰嗦 想要听我啰嗦的 改天书里见
  • 如何将sqlserver迁移到mysql_如何将数据库从SQL Server迁移到MySQL

    一 迁移Database Schema 首先使用Sybase Powerdesigner的逆向工程功能 逆向出SQL Server数据库的物理模型 具体操作是在Powerdesigner中选择 File Reverse Engine 再选择
  • python进行数据处理:pandas的drop函数

    删除表中的某一行或者某一列更明智的方法是使用drop 它不改变原有的df中的数据 而是返回另一个dataframe来存放删除后的数据 引用自 公众号 写bug的程旭源 个人博客 写bug的程旭源 清理无效数据 df df isnull 返回
  • 机器学习/推荐系统顶会截稿日期

    目录 1 推荐相关会议日程简表 2 推荐相关期刊简表 3 相关会议期刊的注意信息 1 推荐相关会议日程简表 会议 截稿时间 WSDM 2020 08 16 AAAI 2020 09 29 ICLR 2020 10 02 SIGKDD 202
  • PHP序列化与反序列化

    一 对象和类 对象是一个由信息及对信息进行处理的描述所组成的整体 是对现实世界的抽象 类是一个共享相同结构和行为的对象的集合 每个类的定义都以关键字class开头 后面跟着类的名字 PHP对属性的控制通过添加关键字来实现 public 公有
  • SpringBoot与SpringCloud的版本对应详细版

    https blog csdn net qq32933432 article details 89375630 版权声明 本文为博主原创文章 遵循 CC 4 0 BY SA 版权协议 转载请附上原文出处链接和本声明 本文链接 https b
  • 物理组件 Physics u3d学习总结笔记本

    目录 1 Rigidbody 2 Hinge Joint 铰链关节 3 Fixed Joint 固定关节 4 Spring Joint 弹簧关节 5 Character Joint角色关节 6 ConfigurableJoint 自定义关节
  • 休息一下,聊聊前阵看的动漫《心理测量者》

    休息一下 聊聊前阵看的动漫 心理测量者
  • python装饰器这一篇就够了

    前言 什么是装饰器 实现原理 实现效果 适用场景 装饰器 装饰器的写法 装饰器的拓展 装饰器的模板 什么是装饰器呢 就是在特定条件下为某些函数再不改动函数体的时候为函数新添加一些功能 这就是装饰器 实现原理 基于 语法和函数闭包 将原函数封
  • 在java中将inputStream对象转换为File对象(不生成本地文件)

    需求说明 在后端中通过POI生成Excel文件流 将输出流 outputStream 转为输入流 inputStream 后又需要将输入流 inputStream 转为File对象 问题 如果需要将输入流 inputStream 转为Fil
  • Node.js入门笔记(二)——npm脚本、跨平台、nrm等入门工具

    Node js入门笔记 二 1 解决一个关于node的配置问题 2 npm 脚本的深层使用 3 获取npm里面的参数 4 node 跨平台工具 cross env 5 执行npm脚本并传入参数 6 nrm镜像源管理工具的使用 7 npx工具