运行vue2源码,最适合的nodejs版本和yarn版本

Node.js 版本

  • Node.js 14.x:这是一个长期支持(LTS)版本,在许多 Vue 2 项目开发和部署中被广泛采用。它提供了良好的性能和稳定性,并且与大多数 Vue 2 生态系统的工具和依赖兼容。
perl 复制代码
# 使用 Node.js 14.x
nvm use 14

Yarn 版本

对于 Yarn,建议使用 Yarn 1.x(也称为 Yarn Classic)。Yarn 1.x 是一个成熟且广泛使用的包管理工具,在 Vue 2 项目开发中具有良好的兼容性和稳定性。

sql 复制代码
npm install -g yarn@1
yarn -v
yarn add typescript@latest --dev

忽略警告

如果更新依赖或者指定版本都不可行,且这个警告不会影响项目的正常运行,你可以选择忽略这个警告。不过,这只是一个临时的解决方案,建议你在合适的时机对依赖进行升级。

在运行项目时,可以使用 --no-fund--no-audit 参数来减少不必要的警告输出:

使用 npm

css 复制代码
npm install --no-fund --no-audit

使用 yarn

css 复制代码
yarn install --no-fund --no-audit

ts报错

swift 复制代码
Type '{ component: () => Promise<Component<DefaultData<never>, DefaultMethods<never>, DefaultComputed, Record<string, any>>>; }' is not assignable to type 'void | Promise<EsModule<Component<DefaultData<never>, DefaultMethods<never>, DefaultComputed, Record<string, any>>>> | { component: Promise<EsModule<Component<DefaultData<never>, DefaultMethods<...>, DefaultComputed, Record<...>>>>; loading?: VueConstructor<...> | ... 3 more ... | undefined;

解决方案:

typescript

typescript 复制代码
import { Component } from 'vue';

// 假设 EsModule 是一个包装组件的类型
type EsModule<T> = { default: T };

type AsyncComponent = () => {
  component: Promise<EsModule<Component>>;
  loading?: any;
  error?: any;
  delay?: number;
  timeout?: number;
};

const b: AsyncComponent = () => ({
  // 直接返回 Promise<EsModule<Component>>
  component: new Promise<EsModule<Component>>((res, rej) => {
    res({ default: { template: "" } });
  }),
  // 你可以根据需要添加 loading、error、delay 和 timeout 属性
});

解释

  • 定义了 EsModule 类型,用于包装组件。
  • 确保 component 属性直接返回 Promise<EsModule<Component>>,而不是返回 Promise 的函数。
  • res({ default: { template: "" } }) 保证了返回的 Promise 解析为一个具有 default 属性的对象,该属性包含组件定义。
相关推荐
奋斗吧程序媛21 小时前
补充一个小知识点:有关@click.native
前端·vue.js
英勇无比的消炎药21 小时前
一行命令背后:TinyRobot CLI 如何重构 AI 对话接入的效率范式
vue.js·aigc
jay神1 天前
基于 FastAPI + Vue 的宠物领养管理系统
前端·vue.js·python·毕业设计·fastapi·宠物
一杯奶茶¥1 天前
水果销售网站 CRM客户信息管理系统 超市管理系 酒店管理系统 健身房管理系统 在线音乐网站 校园招聘系统
java·vue.js·spring boot·mysql·spring·java项目
英勇无比的消炎药1 天前
一站式搞定品牌风格:TinyRobot 主题定制从入门到精通
vue.js
尽欢i1 天前
Vue3 customRef 封神教程:防抖、本地存储、自动埋点一套搞定,模板干干净净
前端·javascript·vue.js
因_崔斯汀1 天前
Vue 模板编译:HTML 是怎么变成 JS 的?
前端·vue.js
英勇无比的消炎药1 天前
样式随心定制:TinyRobot 样式覆写与 CSS 变量实战解析
vue.js
疯狂的魔鬼1 天前
多角色督办任务详情页:从权限矩阵到组件拆分的完整实现
前端·vue.js·架构
英勇无比的消炎药1 天前
拆解内核:深入分析 TinyRobot 输入区组件设计与实现原理
vue.js