zoukankan      html  css  js  c++  java
  • npx 命令介绍

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

    为什么引入这个命令

    举个例子,我们开发中要运行 parcel 命令来打包:parcel index.html,以前有这么几种方式:

    1. 全局安装 parcel,但有时不同项目使用不同版本,不允许使用全局包,只能考虑下面一些方法
    2. 使用 npm scripts,在 package.json 加一个 script
      "scripts": {
          "start": "parcel index.html"
      }

      然后执行 npm run start

    3. 将 node_modules 的可执行目录(.bin)加到 PATH 中
      alias npmx=PATH=$(npm bin):$PATH

      然后执行 npmx parcel index.html

    4. 指定可执行命令路径
      ./node_modules/.bin/parcel index.html

    现在我们有了 npx 命令,就不在需要考虑以上方法了(其实npx 是对方法 3 的封装)。当我们执行 npx parcel index.html 时,会自动去./node_modules/.bin目录下搜索。

    npx 还允许我们单次执行命令而不需要安装,例如:

    npx create-react-app my-cool-new-app

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

    npx命令找包顺序:先自动查找当前依赖包中的可执行文件,如果找不到,就会去 PATH 里找。如果依然找不到,就会帮你临时安装,执行完后再删除包。

    特点:

    1. 临时安装可执行依赖包,不用全局安装,不用担心长期的污染。
    2. 可以执行依赖包中的命令,安装完成自动运行。
    3. 自动加载node_modules中依赖包,不用指定$PATH。
    4. 可以指定node版本、命令的版本,解决了不同项目使用不同版本的命令的问题。
  • 相关阅读:
    printcap
    browser-ua
    PHP 开发 APP 接口 学习笔记与总结
    Java实现 LeetCode 72 编辑距离
    Java实现 LeetCode 72 编辑距离
    Java实现 LeetCode 72 编辑距离
    Java实现 LeetCode 71 简化路径
    Java实现 LeetCode 71 简化路径
    Java实现 LeetCode 71 简化路径
    Java实现 LeetCode70 爬楼梯
  • 原文地址:https://www.cnblogs.com/Jimc/p/10207313.html
Copyright © 2011-2022 走看看