【node】npm run serve的背后执行

vue-cli3搭建的项目,使用npm run serve/yarn serve来运行项目;
npm run :会执行pakeage.json中在scripts中写的脚本命令,这些脚本就是node_modules/.bin中的文件名;因为npm在执行脚本时会临时自动将目录的node_modules/.bin加入PATH变量,所以脚本命令会去node_modules/bin中找,而无需添加node_modules/.bin前缀

 "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint"
  },
而不是
"scripts": {"serve": "node_modules/.bin/vue-cli-service serve",}

开始

1、执行npm run serve
2、找到==> pageage.json 中的 "scripts": {"serve": "vue-cli-service serve", },其中serve是参数,也可以是build
3、找到==> node_modules/.bin/vue-cli-service 文件;
4、找到==>@vue/cli-service/bin/vue-cli-service.js 文件;

关于上述文件补充:
1、 semver:称为 Semantic Versioning(语义化版本表示);
2、【CommenJS的导入规则】 const { semver, error } = require('@vue/cli-shared-utils')
核心模块、第三方模块的加载:在node_module文件下的同名文件中找package.json中的main属性对应的值,如index.js,然后去这个文件并执行;如果main没有,那默认找index.js;本文件夹没有则往外找package.json、index.js,直到找到根目录。
3、【CommenJS的导出规则】
导出的是:module.exports对象;内部默认var module.exports={}; var exports = module.exports; return module.exports;所以一般导出单个用:module.exports=;导出多个用:exports.属性名=或module.exports={};

两个关键点:

  • 普通命令行: *** …:先找当前目录下有没有exe可执行文件,没有就path变量里找有没有全局配置;
  • npm run …,对应的package.json中命令: ***,找node_modules/.bin/***
  • require(***)时:找node_modules/***/package.json中的main字段
当你在项目目录下执行 `npm run serve` 命令时,如果遇到无法执行的情况,可能是由于以下几个原因: 1. 缺少 `serve` 脚本配置:确保你的项目的 `package.json` 文件中有正确的 `serve` 脚本配置。通常,你需要在 `scripts` 部分添加如下代码: ```json "scripts": { "serve": "vue-cli-service serve" // 以Vue项目为例 } ``` 如果 `serve` 脚本没有正确配置,或者配置的命令不正确,会导致无法执行。 2. 项目依赖未安装:执行 `npm run` 命令前,确保所有的依赖都已通过 `npm install` 安装完成。如果没有安装,你将看到错误提示,说明缺少相应的依赖包。 3. 命令行环境问题:确保你的命令行环境已经定位到项目的根目录,并且环境变量中包含了Node.jsnpm的路径。如果不是,你可能需要先切换到项目目录或者重新设置环境变量。 4. 权限问题:如果是在某些受限的环境中,可能需要以管理员或者root权限运行命令行工具。 5. 兼容性问题:确保你使用的Node.jsnpm的版本与项目要求的版本兼容,不兼容的版本可能会导致某些命令无法正确执行。 针对上述可能的原因,你可以按照以下步骤排查和解决问题: 1. 检查 `package.json` 文件中的 `scripts` 部分是否含有 `serve` 脚本。 2. 在项目根目录下运行 `npm install` 或 `npm i` 命令确保依赖正确安装。 3. 确认命令行工具已经处于项目的根目录下。 4. 如果在Windows环境下遇到权限问题,可以尝试以管理员身份打开命令提示符或PowerShell。 5. 查看 `package.json` 的 `engines` 字段,确认Node.jsnpm的版本要求,并确保你的Node.jsnpm版本符合要求。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值