Nodejs npx 是什么

Nodejs npx 是什么

最近我在更新 npm 5.2.0 的时候发现会买一送一,自动安装了 npx。

npx 是什么

根据 zkat/npx 的描述,npx 会帮你执行依赖包里的二进制文件。

举例来说,之前我们可能会写这样的命令:

npm i -D webpack
./node_modules/.bin/webpack -v

如果你对 bash 比较熟,可能会写成这样

npm i -D webpack
`npm bin`/webpack -v

有了 npx,你只需要这样

npm i -D webpack
npx webpack -v

也就是说 npx 会自动查找当前依赖包中的可执行文件,如果找不到,就会去 PATH 里找。如果依然找不到,就会帮你安装!

npx 甚至支持运行远程仓库的可执行文件,如

$ npx github:piuccio/cowsay hello
npx: 1 安装成功,用时 1.663 秒
 _______
< hello >
 -------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

再比如 npx http-server 可以一句话帮你开启一个静态服务器!(第一次运行会稍微慢一些)

$ npx http-server
npx: 23 安装成功,用时 48.633 秒
Starting up http-server, serving ./
Available on:
  http://127.0.0.1:8080
  http://192.168.5.14:8080
Hit CTRL-C to stop the server

你也试试吧~(并没有什么新东西)


7 回复

顶一下 XD


跟知乎上是同一个人?

我推荐大家阅读这篇
[Introducing npx: an npm package runner]( https://medium.com/@maybekatz/introducing-npx-an-npm-package-runner-55f7d4bd282b)

#2 看 ID 就知道是了

楼主,我用的时候,一直报:npx: command not found. (我这边 npx 已经全局安装),你知道是怎么回事吗

重装 npm,看下 PATH 环境变量

在Node.js生态系统中,npx 是一个非常重要的工具,它是 npm(Node Package Manager)的一个包执行器,用于简化在本地运行npm包的操作。npx 提供了无需全局安装npm包就能运行它们的便利,同时它还管理临时安装的包及其依赖,确保环境干净无污染。

基本用法

  1. 运行npm包: 如果你想运行一个npm包而不想全局安装它,可以使用npx。例如,运行create-react-app来创建一个新的React应用:

    npx create-react-app my-app
    
  2. 执行本地安装的包: 如果你已经在项目中安装了某个npm包,但不想通过node_modules/.bin路径来运行它,npx也可以帮你直接运行。例如,假设你安装了eslint

    npx eslint yourfile.js
    
  3. 临时环境npx会创建一个临时的node_modules目录来安装所需的包,执行完毕后会自动清理,确保你的全局环境不会被污染。

代码示例

以下是一个简单的命令行示例,展示如何使用npx来创建一个新的Express应用:

npx express-generator my-express-app
cd my-express-app
npm install
npm start

在这个例子中,npx用于临时安装并执行express-generator,然后你可以进入生成的应用目录并启动它。

总之,npx是一个强大且便捷的工具,能够极大地提高开发效率和灵活性。

回到顶部