zoukankan      html  css  js  c++  java
  • npx

    npm v5.2.0引入的一条命令(npx),引入这个命令的目的是为了提升开发者使用包内提供的命令行工具的体验。

    举例:使用create-react-app创建一个react项目。

    老方法:

    1.  
      npm install -g create-react-app
    2.  
      create-react-app my-app

    npx方式:

    npx create-react-app my-app
    

    这条命令会临时安装 create-react-app 包,命令完成后create-react-app 会删掉,不会出现在 global 中。下次再执行,还是会重新临时安装。

    npx 会帮你执行依赖包里的二进制文件。

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

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

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

    1.  
      npm i -D webpack
    2.  
      `npm bin`/webpack -v

    有了 npx,你只需要这样:

    1.  
      npm i -D webpack
    2.  
      npx webpack -v

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

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

    npx github:piuccio/cowsay hello
    

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

    npx http-server
    

    指定node版本来运行npm scripts

    npx -p node@8 npm run build

    他是怎么运作的呢?

    • npx 会首先寻找当前依赖包中的可执行文件;
    • 如果找不到,就会去 PATH 中寻找;
    • 如果还找不到,就会下载安装,执行后删除!

    主要特点:

    1、临时安装可执行依赖包,不用全局安装,不用担心长期的污染。
    2、可以执行依赖包中的命令,安装完成自动运行。
    3、自动加载node_modules中依赖包,不用指定$PATH。
    4、可以指定node版本、命令的版本,解决了不同项目使用不同版本的命令的问题。

  • 相关阅读:
    剑指offer(14)链表中倒数第K个节点
    剑指offer(13)调整数组顺序使奇数位于偶数前面
    跨域资源共享CORS
    同源政策
    剑指offer(12)数值的整数次方
    剑指offer(11)二进制中1的个数
    面试金典——交点
    LeetCode——简化路径
    LeetCode——跳跃游戏 I-II
    LeetCode——最大矩形
  • 原文地址:https://www.cnblogs.com/ygunoil/p/14087261.html
Copyright © 2011-2022 走看看