nodeJS与npx之间的三两事

        Node.js 是一个基于V8 JavaScript 引擎却又运行在浏览器之外的、开源的、跨平台的 JavaScript 运行时环境。前端开发的同学都很熟悉,在安装了NodeJS之后,除了node命令之外,顺理成章地我们也能使用npm命令了。

1、npm的使用

        先来讲讲npm的使用,npm是Node.js内置的标准的包管理工具,起初是作为下载和管理 Node.js 包依赖的方式,现在也已成为前端 JavaScript 中使用的工具。

参数缩写备注
installi

安装依赖包

uninstalluni卸载依赖包
–save-dev-D

依赖包写入devDependencies

-save-S

依赖包写入dependencies 节点

-global-g全局安装

        devDependencies 节点下的模块是我们在开发时需要用的,比如项目中使用的 gulp ,压缩css、js的模块。这些模块在我们的项目部署后是不需要的,所以我们可以使用 -save-dev 的形式安装。像 express 这些模块是项目运行必备的,应该安装在 dependencies 节点下,所以我们应该使用 -save 的形式安装。

2、npx的使用

        npm 从5.2版开始,增加了 npx 命令,旨在提高从npm仓库中使用软件包时的体验性。过去我们通常将大多数可执行命令发布为全局的软件包,以使它们处于路径中且可被立即地执行,这样的执行方案不是不行,而是会存在一个问题:不同工程无法真正地安装同一命令的不同版本。

        有了npx工具,这个问题就迎刃而解了。npx提供了一种使用 node.js CLI 工具的新方式,运行 npx commandname 时,npx会按照 node_modules/.bin 目录 ->  系统环境变量 Path 配置 -> 远程库的搜索顺序,自动地找到命令的正确引用,而无需知道确切的路径,也不需要在全局和用户路径中安装软件包。

  • webpack的使用

        以前,在使用webpack命令构建工程时,我们有以下两种方式调用:全局安装和项目依赖引用。

(1)全局依赖

npm i webpack -g // 全局安装webpack依赖
webpack // 调用webpack命令构建项目

(2)项目依赖引用

npm i webpack -D  // 在项目内部安装webpack到devDependencies依赖向中
node_modules/.bin/webpack  // 调用webpack构建项目

        后来,nodeJS的开发人员越来越倾向将工具库设置为 devDependencies 安装在本地,而不要求用户在全局进行安装注册,那么如果想要调用这些模块,需要我们定位到 node_modules 中用繁琐的命令才能实现在命令行中对其进行调用,如上所示通过项目依赖引用的方式实现对webpack的使用。而有了 npx 之后,就可以直接使用简化后的命令来调用 webpack 了。

npx webpack --version

        当然,全局安装的webpack模块依旧可以使用npx命令进行调用,因为npx 不仅会到node_modules/.bin中检查命令是否存在,同时还会检查环境变量$path中命令是否存在。

  • creact-react-app创建React工程

        npx 的另一个重要的特性是,无需先安装命令即可运行命令。当我们新建一个 react 项目时,接触过 React 开发的同学应该第一时间会想到安装 creact-react-app,但是,为了运行一次 creact-react-app 命令去构建React工程,而不得不在全局安装 creact-react-app,无疑有污染本地环境变量的嫌疑。这个时候,npx 就很 nice 了。

        通过 npx 执行时,如果命令不在本地环境下的 $path 中时,npx 会自动从 npm 注册源中拉取具有该名字的模块并安装调用它。命令如下:

npx create-react-app my-react-app

        在调用完成后,安装的模块并不会被放入本地环境变量中,并且,当 creact-react-app 完成创建一个新的 React 工程之后,则下载的 creact-react-app 代码会被清除,以后再次执行上面的命令,会重新下载 create-react-app。同时,我们还可以使用 @version 语法运行同一命令的不同版本。

npx create-react-app@4.0.3 my-react-app

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值