Vue3.x 超详细安装教程

  • 请事先装好 nodeJs
  • 整个 vue-cli 版本:vue 3.0.0 + vue-router 4.0.0-0 + vuex 4.0.0-0 + eslint 6.7.2 + typescript 4.1.5

安装步骤

1. 安装vue-cli

npm 或 yarn 安装

  • npm install -g @vue/cli
  • yarn global add @vue/cli

查看版本(是否安装成功):

  • vue -V (大写的V)
  • vue --version

    当前我安装的 vue-cli 版本为:4.5.13

2. 创建项目

进入demo目录: cd G:\demo\
创建my-project项目:vue create my-project

  1. 提供了三种设置:Vue2版、Vue3版、手动选择功能;
  2. 按键盘上下键选择默认(default)还是手动(Manually);
  3. 这里我选择第三种:Manually select features
  4. 回车键确认;

3. 选择配置

选择自己所要集成的配置(格键是选中与取消,A键是全选,回车确定)
这里我的选择如下:



配置项:

  1. Choose Vue version:选择 Vue 版本
  2. Babel:支持使用Babel编译器
  3. TypeScript:支持使用 TypeScript 书写源码
  4. Progressive Web App (PWA) Support:支持PWA
  5. Router:支持 vue-router
  6. Vuex:支持 vuex
  7. CSS Pre-processors:支持 CSS 预处理器
  8. Linter / Formatter:支持代码风格检查和格式化
  9. Unit Testing:支持单元测试
  10. E2E Testing: 支持 E2E 测试

4. 选择 Vue 版本


这里我选择:3.x

安装的 vue-cli 将会是基于 vue3.x 版本


5. 是否使用 class 风格的组件语法

如果在项目中想要保持使用 TypeScript 的 class 风格的话,建议大家选择y。


这里我选择:y


6. 是否使用 Babel 与 TypeScript 一起用于自动检测的填充

这里我选择:y


7. 是否使用 history 路由模式


这里我选择:y


8. 选择CSS预处理器


Sass/SCSS分两种:

  • node-sass:是用 node(调用 cpp 编写的 libsass)来编译 sass,是自动编译实时的
  • dart-sass:是用 drat VM 来编译 sass,需要保存后才会生效

这里我选择:Sass/SCSS(with node-sass)


9. 选择 eslint 配置

  1. ESLint with error prevention only:只进行报错提醒;
  2. ESLint + Airbnb config:Airbnb配置,不严谨模式;
  3. ESLint + Standard config:标准配置,正常模式;
  4. ESLint + Prettier:严格模式;
  5. TSlint:typescript格式验证工具

这里我选择:ESLint with error prevention only


10. 选择什么时候执行 eslint 校验

  • Lint on save:保存时检查
  • Lint and fix on commit:提交时检查

这里我选择:Lint on save


11. 选择配置文件存放的位置

  • In dedicated config files:在专用的配置文件中单独存放
  • In package.json:存放在 package.json 中

这里我选择:In dedicated config files


12. 是否保存之前的配置项


这里我选择:N


13. 等待下载依赖模块


14. 装好后,进入目录,启动

cd my-project ( 进入项目根目录 )
yarn serve ( 启动项目 )


项目目录

现在的目录是 Vue3.x 的 cli 看上去简洁多了,去掉了 Vue2.x 中 build 和 config 等目录



项目配置

在项目的根目录下新建 vue.config.js 文件(是根目录,不是src目录

module.exports = {
    publicPath: process.env.NODE_ENV === "production" ? "./" : "/", // 部署生产环境和开发环境下的URL
    outputDir: 'dist', // 构建输出目录(npm run build 或 yarn build 时 ,生成文件的目录名称)
    assetsDir: 'assets', // 用于放置生成的静态资源(js、css、img、fonts)的;(项目打包之后,静态资源会放在这个文件夹下)
    lintOnSave: true, // 是否开启eslint保存检测,有效值:ture | false | 'error'
    runtimeCompiler: false, // 是否使用包含运行时编译器的Vue核心的构建
    transpileDependencies: [], // 默认情况下 babel-loader 忽略其中的所有文件 node_modules,这里可增加例外的依赖包名
    productionSourceMap: false, // 是否在构建生产包时生成 sourceMap 文件,false将提高构建速度
    filenameHashing: false, //默认情况下,生成的静态资源在它们的文件名中包含了 hash 以便更好的控制缓存。你可以通过将这个选项设为 false 来关闭文件名哈希。(false的时候就是让原来的文件名不改变)
    css: { // 配置高于chainWebpack中关于 css loader 的配置
        modules: false, // 是否开启支持 foo.module.css 样式
        extract: true, // 是否使用 css 分离插件 ExtractTextPlugin,采用独立样式文件载入,不采用 <style> 方式内联至 html 文件中
        sourceMap: false, // 是否构建样式地图,false 将提高构建速度
        loaderOptions: { // css预设器配置项
            sass: {
                data: '' //`@import "@/assets/scss/mixin.scss";`
            },
            css: {
                // options here will be passed to css-loader
            },
            postcss: {
                // options here will be passed to postcss-loader
            }
        }
    },
    configureWebpack: (config) => {
      //webpack-bundle-analyzer 插件
      const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
      if (process.env.NODE_ENV === 'production') {
          return {
              plugins: [
                  new BundleAnalyzerPlugin()
              ]
          }
      }
    },
    // 支持webPack-dev-server的所有选项
    devServer: {
        open: true, // 是否自动启动浏览器
        host: '0.0.0.0',
        port: 3000, // 端口号
        https: false,
        hotOnly: false,
        proxy: null,
        // proxy: { // 配置多个代理
        //     '/api': {
        //         target: '<url>',
        //         ws: true,
        //         changOrigin: true
        //     },
        //     "/foo": {
        //         target: "<other_url>"
        //     }
        // },
        before: app => {}
    },
    parallel: require('os').cpus().length > 1, // 构建时开启多进程处理 babel 编译
    pwa: { // https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-pwa
    },
    pluginOptions: {} // 第三方插件配置
};

其他

其他方法使用 Vue3.x

  1. 独立版本:可以在 Vue.js 的官网上直接下载最新版本, 并用 <script> 标签引入,下载 vue.js
  2. 使用 CDN
    unpkg(推荐):https://unpkg.com/vue@next ,会保持和 npm 发布的最新的版本一致。
    Staticfile CDN(国内) : https://cdn.staticfile.org/vue/3.0.5/vue.global.js
    cdnjs : https://cdnjs.cloudflare.com/ajax/libs/vue/3.0.5/vue.global.js
  3. Vite (推荐)

官方文献

  1. Vue2.x
  2. Vue3.x
  3. Vue CLI
  4. Vue Router
  5. Webpack
  6. TypeScript
  7. Vite
  8. Eslint
  9. SASS
  10. Babel
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,717评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,501评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,311评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,417评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,500评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,538评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,557评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,310评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,759评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,065评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,233评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,909评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,548评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,172评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,420评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,103评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,098评论 2 352

推荐阅读更多精彩内容