vue执行配置选项npm run serve的本质

这篇具有很好参考价值的文章主要介绍了vue执行配置选项npm run serve的本质。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

vue执行配置选项npm run serve运行开发服务器的本质

目录

vue执行配置选项npm run serve运行开发服务器的本质

一、启动开发服务器、调用“工具链”、编译、并运行当前工程

二、npm run serve内部原理分析

三、vue编译运行过程

喜欢的,就收藏并点个赞,便于观看下篇文章:


一、启动开发服务器、调用“工具链”、编译、并运行当前工程

npm run serve

        该命令的配置文件在当前工程的package.json文件中,随@vue/cli脚手架驱动产生的vue的工程默认自动生成: 

npm run serve,RestFul,javascript,vue.js,前端,npm run serve,vue的开发服务器

 (图1)

npm run serve,RestFul,javascript,vue.js,前端,npm run serve,vue的开发服务器

  (图2)

二、npm run serve内部原理分析

         打开“工程”下的node包依赖路径下的“可执行脚本”目录:node_modules\bin

npm run serve,RestFul,javascript,vue.js,前端,npm run serve,vue的开发服务器

   (图3)

         如 图3 所示,vue-cli-service.cmd文件,即 图1 所运行的实际脚本,运行其命令行帮助:

npm run serve,RestFul,javascript,vue.js,前端,npm run serve,vue的开发服务器

   (图4)

         得知其需要1些选项来执行命令( 如 图4 所示):

npm run serve,RestFul,javascript,vue.js,前端,npm run serve,vue的开发服务器

   (图5)

        分别打开 图5 所示的两个文件,得知vue-cli-service.cmd需要带1个“选项参数”来执行内部命令( 如 图6、图7 所示):

npm run serve,RestFul,javascript,vue.js,前端,npm run serve,vue的开发服务器

   (图6)

npm run serve,RestFul,javascript,vue.js,前端,npm run serve,vue的开发服务器

   (图7)

        通过分析 vue-cli-service.js 源码:

npm run serve,RestFul,javascript,vue.js,前端,npm run serve,vue的开发服务器

 (图8)

         得知,“选项参数” 的别名,分别为 build、 serve 、inspect :

#!/usr/bin/env node

const { semver, error } = require('@vue/cli-shared-utils')
const requiredVersion = require('../package.json').engines.node

if (!semver.satisfies(process.version, requiredVersion, { includePrerelease: true })) {
  error(
    `You are using Node ${process.version}, but vue-cli-service ` +
    `requires Node ${requiredVersion}.\nPlease upgrade your Node version.`
  )
  process.exit(1)
}

const Service = require('../lib/Service')
const service = new Service(process.env.VUE_CLI_CONTEXT || process.cwd())

const rawArgv = process.argv.slice(2)
const args = require('minimist')(rawArgv, {
  boolean: [
    // build
    'modern',
    'report',
    'report-json',
    'inline-vue',
    'watch',
    // serve
    'open',
    'copy',
    'https',
    // inspect
    'verbose'
  ]
})
const command = args._[0]

service.run(command, args, rawArgv).catch(err => {
  error(err)
  process.exit(1)
})



        因而,开发环境,npm run serve 的原生CLI命令行脚本为:

node .\node_modules\@vue\cli-service\bin\vue-cli-service.js serve

         同理,生产环境,进行分发时,npm run build 的原生CLI命令行脚本为:

node .\node_modules\@vue\cli-service\bin\vue-cli-service.js build

三、vue编译运行过程

        npm run serve、npm run build等“调试运行脚本”:仅仅是Vue默认在内部做了1个“命令行”封装而已!以包配置文件(package.json)的形式与用户交互。


# 过程大致如此:
#         INFO  Starting development server... 
# node调用各个相关模块并运行:
node.exe
# vue内置webpack开始启动开发服务器webpack-dev-server :
 .\node_modules\webpack-dev-server\client\index.js?http://192.168.3.242:8081&sockPath=/sockjs-node 
 .\node_modules\webpack\hot\dev-server.js
 .\node_modules\webpack-dev-server\client\index.js?http://192.168.3.242:8081&sockPath=/
# vue内置webpack调用cache-loader和babel-loader解析代码进行语法分析、依赖分析:
 .\node_modules\cache-loader\dist\cjs.js??ref--13-0!
 .\node_modules\babel-loader\lib\index.js!
# ...........
# vue-loader加载器启动选项:
 .\node_modules\vue-loader\lib\index.js??vue-loader-options!
# 对你的工程中的文件进行语法及依赖分析:
 .\node_modules\vue-loader\lib\index.js??vue-loader-options!.\src\App.vue?vue&type=te
 .\node_modules\vue-loader\lib\index.js??vue-loader-options!.\src\A
 .\node_modules\vue-loader\lib\index.js??vue-loader-options!.\src\components\Avatar.vue?vue&type=tem
 .\node_modules\vue-loader\lib\index.js??vue-loader-options!.\src\components\Avat
 .\node_modules\vue-loader\lib\index.js??vue-loader-options!.\src\A
 .\node_modules\vue-loader\lib\index.js??vue-loader-options!.\src\components\Avat
 .\node_modules\babel-loader\lib\index.js
 .\node_modules\cache-loader\dist\cjs.js??ref--13-0!
# ...........
# vue-loader开始调用index.js处理你的工程中的文件:
 .\node_modules\vue-loader\lib\index.js??vue-loader-options!.\src\App.vue?vue&type=te
 .\node_modules\vue-loader\lib\index.js??vue-loader-options!.\src\components\Avatar.vue?vue&type=tem
 .\node_modules\vue-loader\lib\index.js??vue-loader-options!.\src\components\Avatar.vue?vue&type=tem
 .\node_modules\vue-loader\lib\index.js??vue-loader-options!.\src\App.vue?vue&type=style&index=0&id=
 .\node_modules\vue-loader\lib\index.js??vue-loader-options!.\src\components\Avatar.vue?vue&type=style&index=0&id=5811d
 .\node_modules\vue-loader\lib\index.js??vue-loader-options!.\src\App.vue?vue&type=style&index=0&id=
 .\node_modules\vue-loader\lib\index.js??vue-loader-options!.\src\components\Avatar.vue?vue&type=style&index=0&id=5811d
 .\node_modules\vue-loader\lib\index.js??vue-loader-options!.\src\App.vue?vue&type=style&index=0&id=
 .\node_modules\vue-loader\lib\index.js??vue-loader-options!.\src\components\Avatar.vue?vue&type=style&index=0&id=5811d
 .\node_modules\vue-loader\lib\index.js??vue-loader-options!.\src\components\Avatar.vue?vue&type=style&index=0&id=5811d
 .\node_modules\vue-loader\lib\index.js??vue-loader-options!.\src\components\Avatar.vue?vue&type=style&index=0&id=5811d
 .\node_modules\vue-loader\lib\index.js??vue-loader-options!.\src\components\Avatar.vue?vue&type=style&index=0&id=5811d
# 完成“构建”并启动应用:
# 98% after emitting CopyPlugin
#  DONE  Compiled successfully in 5177ms                                                                                                                                                                                                                                                                                                   上午4:56:59
#   App running at:
#   - Local:   http://localhost:8081/
#   - Network: http://192.168.3.242:8081/
# 
#   Note that the development build is not optimized.
#   To create a production build, run npm run build.

喜欢的,就收藏并点个赞,便于观看下篇文章:

原生CLI指令构建npm run减少硬盘node_modules的开销_pulledup的博客-CSDN博客

vscode用户配置文件等的存取_pulledup的博客-CSDN博客_vscode配置文件在哪
 

关于vscode插件查询、备份与恢复_pulledup的博客-CSDN博客_vscode缓存文件内容恢复

推荐一款最流行的流程图及图表工具draw.io,老掉牙的工具已无人再用_pulledup的博客-CSDN博客_drawio 图库

http通讯及浏览器中的HTML编码、URL编码、base64编码及转义_pulledup的博客-CSDN博客

开发者实名认证的一般通行做法_pulledup的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-812741.html

到了这里,关于vue执行配置选项npm run serve的本质的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何解决npm run serve运行vue项目时,出现报错:Error: error:0308010C:digital envelope routines::unsupported

    用npm run serve运行vue项目时,出现报错:Error: error:0308010C:digital envelope routines::unsupported 前端项目启动(npm run dev)和打包时(npm run build:prod)报出如下错误, 经过一番探索,终于找到了症结所在:主要是nodeJs V17版本发布了OpenSSL3.0对算法和秘钥大小增加了更为严格的限制,no

    2023年04月26日
    浏览(35)
  • npm run serve和npm run dev的区别

    1. 功能:通常,\\\"npm run serve\\\"用于启动开发服务器,提供实时的开发环境,支持自动重新加载和热模块替换。这样可以在开发过程中实时查看代码更改的效果。而\\\"npm run dev\\\"可以是一个自定义的指令,用于执行其他与开发相关的任务,如编译代码、运行测试等。具体功能取决于项

    2024年01月23日
    浏览(42)
  • npm run serve与npm run dev的区别

    最近在运行前端项目时,有时用到npm run serve 有时用到npm run dev。 一般在 vue 3.x 的时候用 npm run serve,vue2.x项目运行的时候用到 npm  run dev, dev是 vue cli2 的默认执行命令, serve 是 vue cli4 的默认执行命令 例:在我们运行一些 vue 项目的时候,输入npm run serve或者 npm run dev的其中一

    2024年02月09日
    浏览(32)
  • npm run serve启动报错npm ERR! Missing script: “serve“

    启动项目的时候用npm run serve发现报了以下的错误 1. 一般情况下,这个问题是因为 package.json文件里面确实没有 这里没有可能因为你的脚手架版本比较低,如果不想换,可以用 这里面有的 npm run dev去启动也是可以的 npm run serve和npm run dev区别: 前者是vue-cli3.0版本,后者是vue-

    2024年02月22日
    浏览(31)
  • npm run dev和npm run serve两个命令的区别

    前端开发过程中运行Vue项目的时候,有时候使用npm run serve命令可以启动项目,有时候却会报错;有时候使用npm run dev命令可以启动项目,有时候却也会报错。是什么原因造成这种情况呢,原因在于 Vue脚手架版本的问题 ,也可以理解为执行配置的脚本问题,有的脚手架版本支

    2024年02月22日
    浏览(32)
  • npm install 无反应 npm run serve 无反应

    说明情况:其实最开始我就是发现我跟着黑马的苍穹外卖的前端day2的环境搭建做的时候,到这一步出现了问题,无论我怎么 npm install 和 npm run serve 都没有像黑马一样有很多东西进行加载,因此我换了一种方法 1.在这个文件夹下cmd 2.输入 npm install  install时间比较长 3.输入n

    2024年01月18日
    浏览(56)
  • 碎碎念:解决npm run dev /serve 报错

    解决方法: 找到 package.json —— 查看scripts 中的 vue-cli-service 指令,将我们的 npm-run-dev 改为 npm-run-serve 即可解决! 二、使用 npm run serve 出现以下报错信息 解决方法: 按照上述方法查看了scripts 中的 vue-cli-service 指令 若查找指令之后仍然报错,可检查一下当前路径 是否 是当前

    2024年02月13日
    浏览(37)
  • 【npm run serve报错问题node.js版本太高】

    提示:这里描述项目中遇到的问题: npm run serve出现下面的报错问题 提示:这里填写该问题的具体解决方案: 1、方法一: 在命令行修改环境变量: $env:NODE_OPTIONS=\\\"--openssl-legacy-provider\\\" 在启动项目: yarn start 2、方法二: 使用nvm将node修改为不高于16的版本

    2024年01月18日
    浏览(43)
  • npm run serve出现错误 error:0308010C:digital envelope routines::unsupported

    因为新换了电脑,重新安装vs code和 nodejs 跑前端项目,npm run install之后,vs code命令行出现错误:error: error:0308010C:digital envelope routines::unsupported 10% building 2/4 modules 2 active ...node_moduleswebpackhotdev-server.js E rror: error:0308010C:digital envelope routines::unsupported     at new Hash (node:internal/c

    2024年02月16日
    浏览(29)
  • vue/cli@4执行npm run build报错:Syntax Error: Thread Loader (Worker 2) The “from“ argument must be of

    目录 1、问题 2、原因 3、解决方案 Syntax Error: Thread Loader (Work 2) The \\\"from\\\" argument must be of type string. Received undefined 语法错误:线程加载器(工作2) “from”参数的类型必须为字符串。接收未定义 错误提示代码: vue-cli 使用 wokrer-loader 加载 web woker 时,使用 npm run build 有很大机

    2024年02月09日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包