kuangpf / vue-cli-analysis Goto Github PK
View Code? Open in Web Editor NEWvue-cli 源码分析 (vue-cli3)
Home Page: https://kuangpf.com/vue-cli-analysis/
License: MIT License
vue-cli 源码分析 (vue-cli3)
Home Page: https://kuangpf.com/vue-cli-analysis/
License: MIT License
GraphQL和apollo-server我的理解只是一个服务端和客户端通信的东西,点击项目启动的时候,我看到有一个socket长链接,这个是apollo-server建立的吗,点击启动这个又运行了哪些东西呢
我看了写cli没有相应的命令
但代码中有相关的debug
请问下这块是如何debug的?
还有它测试用例是如何跑的?
首先感谢你的分享给我阅读源码时提供的帮助
vue cli加载插件模块使用的是自建的loadModule,而不是直接使用require。
这个点在源代码中频繁出现,但是大家似乎都没分析过这个点,个人很好奇为什么vue cli一定要自己实现一遍
在cli-service中加载模块的代码示例
我个人初期看到的时候觉得没必要自己去实现require,包括去看了NodeJs Module模块createRequire、createRequireFromPath
的说明,也并没有看到需要自己去实现的一个必要性,但是其实这个函数贯穿了插件模块使用的全流程,让人比较困惑
想咨询一下您对【loadModule】部分的看法,以及是否有必要自建require
你可以在README中贴一下alipay
或者wechat pay
的地址,或许我可以请你喝杯咖啡
vue ui GUI界面点击运行后,没看到有发送请求到 server端,告诉server端运行vue-cli-service serve命令,这个client 端和 server端是通过什么方式通信的?
最近在研究怎么断点调试nuxt源码,想学习下楼主的思路
冒昧再请教一下
在我们写service插件的时候会使用Api.chainWebpack
去链式的修改我们的webpack配置
比如you尤大在vue-cli/packages/@vue/cli-plugin-typescript/index.js
中写的一样
我们可以看到这个插件中其实就调了一个Api.chainWebpack
,看起来最终插件也成功的链式修改了webpack的配置
从源码来看,这个现象很不科学
PluginApi中Api.chainWebpack
只是把要执行的回调push到了一个数组中,并没有去执行:代码
最终执行时机是在Service.js/resolveChainableWebpackConfig
这一层:
但是resolveChainableWebpackConfig
在Service.js其实只会在resolveWebpackConfig
中执行
而整个cli-service启动过程中resolveWebpackConfig
只会在插件实例中通过Api.resolveWebpackConfig
去调用
也就是说根据源代码来看写插件的时候仅仅只有Api.chainWebpack
是不会生效的
但是可以看到我在上面【背景】中贴出来的图,尤大他们在vue-cli/packages/@vue/cli-plugin-typescript/index.js
写的插件确实是只写了chainWebpack
,并没有调用一次resolveWebpackConfig
您好,请问一下,this.emit('creation', { event: 'creating' }) 像这样提交的事件,没有找到在哪里有接收的地方。
我目前使用的也是vue-cli3版本,但是有些疑惑vue xxx和npm run xxx(也就是vue-cli-service xxx),这两套命令有什么区别吗,如果执行效果一样的话为什么还会同时存在呢~
每次在使用 vue-cli 生成模版的时候,怎么保证这些模版能正常工作呢? 是通过怎么样的测试呢?
首先感谢你的分析分享
看到vue create章节中Generator/GeneratorAPI中提到如下内容:
- render:利用 ejs 渲染模板文件
- onCreateComplete:内存中保存的文件字符串全部被写入文件后的回调函数
- exitLog:当 generator 退出的时候输出的信息
onCreateComplete的描述Push a callback to be called when the files have been written to disk.
在源码中也有体现
插件本身或许应该具备一些生命周期回调,所以我将onCreateComplete默认为了每个插件的结束回调;基于这个判断我认为每个插件结束后会执行一下onCreateComplete,然后再执行其它插件
但是看了源代码之后发现,似乎onCreateComplete更像是整体插件的结束回调而不是单个插件的结束回调:源码体现
想咨询一下你对【Question】部分两个问题的判断是什么,如您有空可以回复一下
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.