Node.js 入门教程 26 npm 依赖与开发依赖 27 Node.js 包运行器 npx

news2024/11/24 17:10:41

Node.js 入门教程

Node.js官方入门教程

Node.js中文网

本文仅用于学习记录,不存在任何商业用途,如侵删

文章目录

      • Node.js 入门教程
      • 26 npm 依赖与开发依赖
      • 27 Node.js 包运行器 npx
        • 27.1 轻松地运行本地命令
        • 27.2 无需安装的命令执行
        • 27.3 使用不同的 Node.js 版本运行代码
        • 27.4 直接从 URL 运行任意代码片段

26 npm 依赖与开发依赖

当使用 npm install <package-name> 安装 npm 软件包时,是将其安装为依赖项。

该软件包会被自动地列出在 package.json 文件中的 dependencies 列表下(在 npm 5 之前:必须手动指定 --save)。

当添加了 -D--save-dev 标志时,则会将其安装为开发依赖项(会被添加到 devDependencies 列表)。

开发依赖是仅用于开发的程序包,在生产环境中并不需要。 例如测试的软件包、webpack 或 Babel。

当投入生产环境时,如果输入 npm install 且该文件夹包含 package.json 文件时,则会安装它们,因为 npm 会假定这是开发部署。

需要设置 --production 标志(npm install --production),以避免安装这些开发依赖项。

27 Node.js 包运行器 npx

npx 是一个非常强大的命令,从 npm 的 5.2 版本(发布于 2017 年 7 月)开始可用。

如果不想安装 npm,则可以安装 npx 为独立的软件包。

npx 可以运行使用 Node.js 构建并通过 npm 仓库发布的代码。

27.1 轻松地运行本地命令

Node.js 开发者过去通常将大多数可执行命令发布为全局的软件包,以使它们处于路径中且可被立即地执行。

这很痛苦,因为无法真正地安装同一命令的不同版本。

运行 npx commandname 会自动地在项目的 node_modules 文件夹中找到命令的正确引用,而无需知道确切的路径,也不需要在全局和用户路径中安装软件包。

27.2 无需安装的命令执行

npx 的另一个重要的特性是,无需先安装命令即可运行命令。

这非常有用,主要是因为:

  1. 不需要安装任何东西。
  2. 可以使用 @version 语法运行同一命令的不同版本。

使用 npx 的一个典型演示是使用 cowsay 命令。 cowsay 会打印一头母牛,并在命令中说出你写的内容。 例如:

cowsay "你好" 会打印:

 _______
< 你好 >
 -------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

只有之前已从 npm 全局安装了 cowsay 命令,才可以这样做,否则,当尝试运行该命令时会获得错误。

【笔者当前没有在全局安装,只是在本地】

在这里插入图片描述

但是!

npx 可以运行该 npm 命令,而无需在本地安装:

npx cowsay "你好"

在这里插入图片描述

在这里插入图片描述

这样就会执行这个工作。

这是一个有趣但无用的命令。 其他场景有:

  • 运行 vue CLI 工具以创建新的应用程序并运行它们:npx @vue/cli create my-vue-app
  • 使用 create-react-app 创建新的 React 应用:npx create-react-app my-react-app

还有更多其他的场景。

27.3 使用不同的 Node.js 版本运行代码

使用 @ 指定版本,并将其与 node npm 软件包 结合使用:

npx node@10 -v #v10.18.1
npx node@12 -v #v12.14.1

这有助于避免使用 nvm 之类的工具或其他 Node.js 版本管理工具。

27.4 直接从 URL 运行任意代码片段

npx 并不限制使用 npm 仓库上发布的软件包。

可以运行位于 GitHub gist 中的代码,例如:

在这里插入图片描述

当然,当运行不受控制的代码时,需要格外小心,因为强大的功能带来了巨大的责任。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/47309.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[SWPUCTF 2018]SimplePHP

考点&#xff1a;文件上传 试了一下&#xff0c;直接上传php文件是不行的&#xff0c;.user.ini和.htaccess也不行 能看到有提示&#xff0c;flag在f1ag.php中 在查看文件功能处发现get传参&#xff0c;可能是文件包含 尝试包含当前页面 ?filefile.php 得到 <?php h…

一些感悟(随笔小记)

不知不觉已经坚持快70天了&#xff0c;之前虽然断断续续学过几个月但是没有形成自己的体系&#xff0c;导师安排的各种任务和课程也极大的影响了自己自学的进度&#xff0c;当时真的很迷茫。好在因为那一股冲劲制定了百日救赎计划&#xff0c;虽然在庞大的知识体系中100天真的微…

精彩回顾 | 苏州农商银行新一代云原生信息科技架构体系实践

11月18日&#xff0c;2022年第五届中国金融科技产业大会暨第四届中新&#xff08;苏州&#xff09;数字金融应用博览会“基础软件与云原生系统软件”分论坛成功举办。该论坛由由中国计算机学会CTO CLUB&#xff08;苏州&#xff09;承办&#xff0c;江苏省金融科技云原生融合创…

【Kubernetes系列】工作负载资源之StatefulSet

StatefulSet概述解决的问题组件Pod 选择算符卷声明模板最短就绪秒数更新策略滚动更新分区滚动更新最大不可用 Pod强制回滚副本数StatefulSet的网络标识StatefulSet存储状态概述 StatefulSet 是用来管理有状态应用的工作负载 API 对象。 StatefulSet 用来管理某 Pod 集合的部署…

IDEA的乱码与file.encoding = UTF-8

file.encoding UTF-8的作用其实就是使用UTF-8作为文件encoding和decoding时的默认方案。 我们知道存储文本文件时&#xff0c;文本变为二进制时要对文件进行encoding&#xff0c;这是一个字节转字符的过程&#xff0c;转换的具体工作由JAVA的API完成&#xff08;例如&#xf…

ACM近年区域赛的所有题型

之前写了个退役文章记录想记录下&#xff0c;但是没有干货&#xff0c;还是给删了&#xff0c;所以前面的是退役小记&#xff0c;后面是我个人写近2年所有区域赛场次记录的题型 目录 退役小记&#xff08;没兴趣可以不看&#xff09; 这里简单记下我的acm生涯 省赛和三场区…

MySQL第一弹

目录 一、数据库的基本概念 1、数据 (Data) 2、表 3、数据库 4、数据库管理系统(DBMS) 5、数据库系统 6、DBMS的工作模式如下 二、数据库的发展史 1.第一代数据库&#xff08;淘汰&#xff09; 2.第二代数据库&#xff08;现在用的基本上都是二代&#xff09; 3.第…

Netty02——Netty 入门

目录1.概述1.1.Netty 是什么&#xff1f;1.2.Netty 的作者1.3.Netty 的地位1.4 Netty 的优势2. Hello World2.1 目标2.2 服务器端2.3 客户端2.4 流程梳理2.5.提示3. 组件3.1 EventLoop3.1.1.概述3.1.2.案例演示3.2 Channel3.2.1.ChannelFuture3.2.2.CloseFuture3.2.3.异步提升的…

火车头采集无分页列表-滚动加载列表采集软件免费

互联网的信息和数据不断攀升&#xff0c;每个人都离不开数据的汇总以及分析&#xff0c;不管是整理数据&#xff0c;还是分析同行的数据。今天小编就教大家如何有效地快速抓取自己想要的网页数据。 不管是列表页的网站&#xff0c;还是滚动加载的网站或者需要登录才能采集的网站…

终于学完了9年资深工程师推荐的Java项目化程序设计案例文档

时间飞逝&#xff0c;转眼间毕业七年多&#xff0c;从事 Java 开发也六年了。我在想&#xff0c;也是时候将自己的 Java 整理成一套体系。 这一次的知识体系面试题涉及到 Java 知识部分、性能优化、微服务、并发编程、开源框架、分布式等多个方面的知识点。 写这一套 Java 面试…

时间序列:时间序列模型---随机游走过程(The Random Walk Process)

本文是Quantitative Methods and Analysis: Pairs Trading此书的读书笔记。 随机游走过程是一种特殊的ARMA序列。从分子运动到股价波动等现象都被建模为随机游走。 随机游走过程是AR(1)序列&#xff0c;而且,时间序列在时刻的值为&#xff1a; 随机游走过程本质上是到当前时间…

【ZYNQ】IP核_DDR4_SDRAM(MIG)的详细介绍

IP核_DDR4_SDRAM的详细介绍内核架构内存控制器本机接口控制与数据路径控制路径数据路径读写合并重新排序组状态机ECCRMW(Read-Modify-Write)流程ECC模块ERROR地址时延ECC端口描述地址奇偶校验Clamshell 拓扑迁移功能MicroBlaze MCS ECCMemory 设置内核设计时钟复位协议描述用户…

libxlsxwriter初体验

C如何写Excel&#xff1f; 大家时间都这么宝贵&#xff0c;没有起因的问题是不值得被优先研究的。这篇博客的起因就是希望找到一个比较合适于C的开源库&#xff0c;用以在C中生成Excel文档。其实C可用的开源Excel库&#xff0c;很多博主都已经撰文提及。例如&#xff1a;# c操…

独立站运营优化方法

一个跨境卖家出海&#xff0c;除了建立独立站&#xff0c;要考虑的核心问题是引流和转型。独立站流量从哪里来&#xff1f;面对多元化的海外市场&#xff0c;如何选择更适合品牌的引流渠道和方式&#xff1f; 米贸搜在与海外主流社交媒体、搜索引擎深度连接的基础上&#xff0…

智翔金泰IPO过会:持续经营风险遭质疑,蒋仁生为实际控制人

11月28日&#xff0c;上海证券交易所科创板上市委员会2022年第 99次审议会议召开&#xff0c;重庆智翔金泰生物制药股份有限公司&#xff08;下称“智翔金泰”&#xff09;首发符合发行条件、上市条件和信息披露要求&#xff0c;即获得上市委会议通过。 据了解&#xff0c;上市…

目标检测数据标注项目分析-产品缺陷检测

什么是生产过程中的产品缺陷检测? 生产过程中的缺陷检测是保证产品质量的重要环节。及时发现故障或缺陷&#xff0c;并采取适当的措施&#xff0c;我们可以降低运行和质量相关的风险。但在一般视觉系统中&#xff0c;每个缺陷都必须经过检查及预处理才能被检测到&#xff0c;…

vue Router

Vue项目各文件含义 1.src文件夹 是我们真正敲代码的文件夹&#xff0c; 2.assets放静态资源 3.components放组件 4.App.vue主组件 5.main.js项目的入口文件 Vue Router 在router/index.js路由文件中配置路由&#xff0c;设置路由跳转规则 import Vue from vue import Vu…

Node.js 入门教程 28 Node.js 事件循环

Node.js 入门教程 Node.js官方入门教程 Node.js中文网 本文仅用于学习记录&#xff0c;不存在任何商业用途&#xff0c;如侵删 文章目录Node.js 入门教程28 Node.js 事件循环28.1 介绍28.2 阻塞事件循环28.3 调用堆栈28.4 一个简单的事件循环的阐释28.5 入队函数执行28.6 消息队…

ICC2:Design Planning(03)Power Network Synthesis

在shape block之后&#xff0c;接下来可以做pg规划。power network creation可以分为如下几个部分: 1.Add Power Pad 在规划power mesh之前需要先插power pad&#xff0c;所以要在create abstract阶段load upf&#xff0c;如果规划power mesh时没有power pad&#xff0c;也需要…

Java+JSP基于ssm高校网上教材征订系统-计算机毕业设计

项目介绍 随着高校规模的扩大和教学改革的不断深入&#xff0c;高校的教学和科研水平都在稳步提高&#xff0c;但高校的教材选订环节却仍存在着许多问题。目前&#xff0c;高校的教材选订工作大多采用的是手工方式&#xff0c;不仅费时、费力&#xff0c;而且还存在许多人为的…