iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >输入npm run xxx后执行原理深入解析
  • 249
分享到

输入npm run xxx后执行原理深入解析

2024-04-02 19:04:59 249人浏览 薄情痞子
摘要

目录前言package.JSON文件总结前言 当我们输入npm run XXX会首先去package.json文件里找scripts 里找对应的xxx,然后执行 xxx的命令,例如我

前言

当我们输入npm run XXX会首先去package.json文件里找scripts 里找对应的xxx,然后执行 xxx的命令,例如我下面这个项目输入npm run dev就会执行Vue-cli-service serve 这条命令。

package.json文件

那么问题来了:

为什么不直接执行vue-cli-service serve而要执行npm run serve 呢?

因为 直接执行vue-cli-service serve,会报错,因为操作系统中没有存在vue-cli-service这一条指令。

那么问题又来了:

为什么执行npm run serve的时候,这样它就能成功,而且不报指令不存在的错误呢?

我们在安装依赖的时候,是通过npm i xxx 来执行的,例如 npm i @vue/cli-service,npm 在 安装这个依赖的时候,就会node_modules/.bin/ 目录中创建 好vue-cli-service 为名的几个可执行文件了。

.bin 目录,这个目录不是任何一个 npm 包。目录下的文件,表示这是一个个软链接,打开文件可以看到文件顶部写着 #!/bin/sh ,表示这是一个脚本。

由此我们可以知道,当使用 npm run serve 执行 vue-cli-service serve 时,虽然没有安装 vue-cli-service的全局命令,但是 npm 会到 ./node_modules/.bin 中找到 vue-cli-service 文件作为 脚本来执行,则相当于执行了 ./node_modules/.bin/vue-cli-service serve(最后的 serve 作为参数传入)。

总结

  • 运行 npm run xxx的时候,npm 会先在当前目录的 node_modules/.bin 查找要执行的程序,如果找到则运行;
  • 没有找到则从全局的 node_modules/.bin 中查找,npm i -g xxx就是安装到到全局目录;
  • 如果全局目录还是没找到,那么就从 path 环境变量中查找有没有其他同名的可执行程序。

参考 https://www.jb51.net/article/254116.htm

以上就是输入npm run xxx后执行原理深入解析的详细内容,更多关于npm run xxx执行原理的资料请关注编程网其它相关文章!

--结束END--

本文标题: 输入npm run xxx后执行原理深入解析

本文链接: https://www.lsjlt.com/news/153468.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 输入npm run xxx后执行原理深入解析
    目录前言package.json文件总结前言 当我们输入npm run XXX会首先去package.json文件里找scripts 里找对应的xxx,然后执行 xxx的命令,例如我...
    99+
    2022-11-13
  • 前端面试之输入npm run后执行原理
    引言 在前端开发的工作当中,使用 npm run dev 的命令启动本地开发环境,是再正常不过的事了。那么,当输入完类似 npm run xxx 的命令后,究竟是如何触发各种构建工具...
    99+
    2022-11-13
  • 前端面试运行npm run xxx发生过程原理解析
    目录引言package.json文件总结引言 事情是这样的,直接开讲 面试官:npm run xxx的时候,发生了什么?讲的越详细越好。 我(心想,简单啊): 首先,DNS 解析,将...
    99+
    2022-11-13
  • 深入剖析springBoot中的@Scheduled执行原理
    目录springBoot @Scheduled执行原理一、前言二、@Scheduled使用方式三、@Scheduled代码执行原理说明@Scheduled 的一些坑springBoo...
    99+
    2022-11-12
  • 深入理解框架背后的原理及源码分析
    目录问题1问题2总结近期团队中同学遇到几个问题,想在这儿跟大家分享一波,虽说不是很有难度,但是背后也折射出一些问题,值得思考。 开始之前先简单介绍一下我所在团队的技术栈,基于这个背景...
    99+
    2022-11-13
  • 深入理解linux执行文件提示No such file or directory的背后原因
    1 背景 最近一直在研究在ZC706-ARM开发板的linux系统中弄一套编译系统(不支持apt),刚好发现公司有一套英伟达的ARM开发板且带有ubunut系统(支持apt),此时产生一个想法,英伟达板子上编译的程序能否...
    99+
    2022-06-04
    linux 执行程序 linux执行文件提示
  • 如何进行JSONP跨域请求原理的深入解析
    这篇文章将为大家详细讲解有关如何进行JSONP跨域请求原理的深入解析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。什么是同源策略同源策略,它是由Netscape提出的一个著名的安全策略。现在...
    99+
    2023-06-26
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作