Vue-cli3 改版使用 webpack4 搭建简单脚手架

前言

随着 Vue.js 的广泛应用,Vue 脚手架也愈发成为前端开发的必需工具。在这个过程中,Vue-cli 系列一直是最受欢迎的选择之一。而在 2018 年初, Vue-cli3 横空出世,一经推出就迅速受到了开发者们的喜爱。相较于 2.x 版本,Vue-cli3 具备更加强大的功能和更加简化的操作。另外,在新版本中,Vue-cli3 也将默认升级至 webpack4;对于这个更加高效稳定的构建工具,我们也有必要去学习了解一下。在本篇文章中,我们将基于 Vue-cli3 和 webpack4,搭建一个简单的脚手架,并分享一些有关配置的经验和技巧。

基础环境

在正式开始之前,我们需要先配置好相应的环境。具体来说,我们需要安装以下软件:

如果您还没有安装这两个软件,请提前按照官网指示进行安装。安装完成后,我们可以通过命令行检查其版本信息:

---- --
--- -- - ---- --

在确保自己的环境准备就绪后,我们继续往下进行。

Vue-cli3 安装

Vue-cli3 是一个基于 Vue.js 的官方脚手架,用于快速搭建 Vue 项目。下面我们将介绍如何在命令行中安装 Vue-cli3:

--- ------- -- --------

---- ------ --- --------

安装完成后,我们可以通过以下命令来检查其版本信息:

--- ---------

倘若出现版本信息,则说明 Vue-cli3 安装成功。

项目初始化

下面我们就可以开始针对项目进行初始化了。在本文中,我们以一个简单的 todo 应用为例,来实现我们的脚手架。

1、用 Vue-cli3 创建一个项目

首先,在命令行中执行如下命令:

--- ------ -------------

此时,Vue-cli3 会要求您进行选择一系列的模板和插件。你可以按照使用需求自行选择,也可以直接回车进入默认选择。

2、初始项目根目录

初始化后,我们就获得了一个包含一些基础文件和目录的 Vue.js 项目:

--------------
--- -------------               -- -----
--- -------                     -- ------
-   --- -----------             -- ----
-   --- ----------              -- ---- ----
--- ----                        -- ----
-   --- -------                 -- --------
-   --- -----------             -- ----
-   --- -------                 -- ----
-   --- ------                  -- ----
-   --- ------                  -- ----
-   --- -------                 -- --- ----
-   --- -------                 -- ------
--- --------                    -- ----- ----
--- ------------                -- ------ ----
--- ----------                  -- --- ----
--- ------------                -- ------
--- ---------                   -- ------
--- ---------                   -- ---- ------

接下来,我们先对上述目录结构逐一进行解释。

  • node_modules/: 项目运行时依赖的 npm 包;
  • public/: 放置一些静态资源或公用 favicon.ico、index.html 的目录;
  • src/: Vue 项目源码目录;
  • src/assets/: 资源目录,用于放置图片、字体等文件;
  • src/components/: 公用组件目录;
  • src/utils/: 公用方法目录;
  • src/views/: 页面目录;
  • src/App.vue: Vue 入口文件,包含正在渲染的根实例;
  • src/main.js: 程序入口文件,通过引入 App.vue 实现渲染所有页面;
  • .babelrc: Babel 配置文件;
  • .eslintrc.js: Eslint 配置文件;
  • .gitignore: git 忽略文件,用于指定不需要提交到版本库中的文件;
  • package.json: 项目配置文件,用于定义项目中所需依赖及配置信息等;
  • README.md: 项目说明文件,包含项目的详细说明文档;
  • yarn.lock: Yarn 依赖锁定文件,该文件用于记录当前项目的所有依赖包。

3、运行当前项目

当我们完成初始化后,我们可以运行以下命令,启动当前项目:

-- -------------
--- --- ----- - ---- --- -----

在命令行中看到如下提示:

----  -------- ------------ -- ------

  --- ------- ---
  - ------   ----------------------
  - -------- -------------------------

  ---- ---- --- ----------- ----- -- --- ----------
  -- ------ - ---------- ------ --- --- --- ------

此时,我们就可以在浏览器中输入 http://localhost:8080/ 来查看当前项目。如下图所示,我们成功地启动了一个 Vue 应用。

接下来,我们进入到后续的实现阶段。

配置 webpack4

到这里,我们已经成功安装了 Vue-cli3,创建了一个简单的 todo 应用,并成功启动了项目。下面,我们进入到重点内容——webpack4 的配置。

1、理解 webpack4

webpack4 作为一款高效的前端构建工具,具备较高的灵活性和可定制性。在本文中,我们也将通过改写 Vue 脚手架中的 webpack 配置文件,配置出一个根据不同环境参数实现构建结果的简单实现。

webpack4 的常见特性:

  • 环境判定,默认配置环境分为两类:环境变量,或 package.json 中的 mode 参数;
  • 简化配置文件;
  • 稳定性优化,提高构建性能。

2、webpack4 安装

在安装 webpack4 前,我们需要先安装如下辅助工具:

--- ------- ---------- ------- ----------- ------------------ -------------

或者,也可以使用 yarn 进行安装:

---- --- ----- ------- ----------- ------------------ -------------
  • webpack: webpack4 的基础依赖,主要负责打包构建;
  • webpack-cli: webpack 的命令行工具,支持在命令行中调用 webpack;
  • webpack-dev-server: webpack 开发服务器,支持实时编译和浏览器自动刷新;
  • webpack-merge: 用于合并不同环境下 webpack 配置文件的工具。

安装成功后,我们进入到 webpack4 的详细配置中。

3、webpack4 配置文件

下面,我们将通过一个简单的示例,依次说明 webpack4 的配置文件。

3.1、基础配置

在 Vue-cli3 脚手架生成的项目中,Vue-cli3 已经为我们集成了 webpack4 的配置文件,我们只需要新建或修改相应的 .config 文件,即可实现我们想要的配置。其中,我们需要对以下文件进行配置:

  • vue.config.js
  • babel.config.js
  • webpack.config.js
  • postcss.config.js

接下来,我们分别说明如何进行基础配置。

3.2、vue.config.js

在我们使用 Vue-cli3 脚手架创建项目时,它会默认初始化一个 vue.config.js 文件,该文件用于一些 webpack 相关的配置。在该文件中,为了方便我们配置 webpack,Vue-cli3 已经将 webpack 的相关配置进行了抽离,并封装在 configureWebpackchainWebpack 中,用于配合 webpack-merge 进行合并,从而达到相应的目的。

我们可以在 vue.config.js 中添加一些配置,比如我们要为打包出的 css 文件自动添加前缀,那么可以先安装 postcss 相关依赖:

--- ------- ---------- ------------ -------

或者使用 yarn 安装:

---- --- ----- ------------ -------

接下来我们需要修改 vue.config.js 文件:

-------------- - -
  ---- -
    -------------- -
      -------- -
        -------- --------------------------
      --
    --
  --
--

这里,我们对于 webpack4 中的新 loader 机制,还需要在 vue.config.js 中进行一些配置。如果我们想要在 less 中使用 antd 样式,那么可以在此处添加以下配置:

---- -
    -------------- -
        ----- -
            ------------------ -----
            ----------- -
                -- ---- ------ -----
            -
        -
    -
-

3.3、babel.config.js

在 Vue-cli3 脚手架中使用 Vue3 时,默认使用 Vue-CLI2 中的 babel 配置方式。在 Vue-cli3 中,轻轻松松地就能配置 babel,我们只需要新建一个 .babelrcbabel.config.js 文件,并添加相应的 plugins 或 presets,并且这个文件会自动被 Vue-cli3 自动加载。

babel.config.js 文件中,我们可以添加如下基础配置:

----- ------- - -------------
-------------- - - ------- --

3.4、webpack.config.js

对于 webpack 的基础配置文件,Vue-cli3 并没有对其进行抽离并封装,所以如果我们要修改webpack4 的基础配置文件,则需要在项目根目录下新建此文件。代码如下所示:

----- ---- - ----------------
-------------- - -
    ------- -
        ----- -------------------- ---------
        --------- -----------------
    --
    -------- -
      ----------- ------- ------- ---------    -- ------ ------ --
      ------ -    -------- -----
        ------- ---------------------
      -
    --
    ------- -
        ------ -
            -
                ----- ----------
                ---- -
                    ---------------
                    -
                        ------- -------------
                        -------- -
                            -------------- --
                        --
                    --
                    --------------
                -
            --
        -
    --
--

如上面的代码所示,我们在当前目录下新建了一个基础的 webpack 配置文件,配置了相应的 outputresolve,并添加了对于 .less 文件的处理,用来完成 antd css 样式和自定义样式的编译。其中,output 属性用于配置输出路径和输出的文件名,resolve 属性用于指定后缀和 .vue 文件的别名,module 属性用于处理 webpack 转换各个文件的 loader。在 module 的 rules 中,我们定义了 less 文件的处理规则,使用了 less-loader、css-loader 和 style-loader。

3.5、postcss.config.js

Vue-cli3 中自带的 postcss.config.js 文件,我们无需做过多额外配置,因为在 Kalian 脚手架中,我们已经安装了相关的库 autoprefixerpostcss,可以使用默认配置。我们只需要新建 postcss.config.js 文件,并在其中添加如下代码:

-------------- - --

以上,我们就完成了 webpack4 和 Vue-cli3 的简单脚手架搭建,并对以上所说的内容进行了详细介绍。这对于想要更深入学习前端的同学,实属不虚。代码部分可参见以下 Gihub 地址:

版本:vue-cli3-webpack4-sample地址

上述的示例,可以很好地应用于业务项目中。我们真心希望,我们的学习和实践,与您的项目开发,可以深入相连。

结语

到这里,本文关于 Vue-cli3 脚手架的配置内容就讲解完毕了,接下来,再来总结一下:

  • Vue-cli3 是官方的 Vue.js 脚手架,用于快速构建 Vue 项目;
  • webpack4 是当前前端开发中较为流行的构建工具,相比较于之前的版本,具备更加强大的功能;
  • 在配置文件过程中,Vue-cli3 脚手架已经自带了部分基础配置,后续我们需要针对一些需求进行修改和完善;
  • 在创建的项目中,我们还需要编写各种组件和工具函数,因为本篇文章仅仅是介绍如何脚手架的搭建和 webpack4 的配置,因此,对于已达到中等水平的前端开发者来说,上述内容也已经足够。

希望本文能对大家有所帮助,有兴趣的同学可以尝试着动手操作一下,并多多实践来拓宽自己的前端技能。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/649d6efe48841e9894a31238


猜你喜欢

  • Docker Compose 中配置 SSL 证书的方法

    在前端开发中,为了保证网站的安全性和数据传输的加密性,通常会使用 SSL 证书。当我们使用 Docker Compose 构建多个容器的应用时,如何配置 SSL 证书就成了一个重要的问题。

    1 年前
  • Koa2 实战:使用 koa-convert 兼容旧版本中间件

    在使用 Koa2 进行 Web 开发时,旧版本的中间件可能无法直接在 Koa2 中使用。此时,我们可以使用 koa-convert 进行中间件兼容处理,让旧版中间件也能在 Koa2 中运行。

    1 年前
  • Sequelize 数据迁移遇到的坑与解决方案

    在前端开发过程中,数据库是一个不可或缺的组件,而 Sequelize 是一种优秀的 ORM(对象关系映射)框架,我们通常使用它来操作数据库的表。在项目开发过程中,难免会涉及到数据库迁移的问题,本文将介...

    1 年前
  • 如何解决 Cypress 运行速度慢的问题

    1. 问题描述 Cypress 是一个非常强大的前端自动化测试工具,但是在测试用例规模较大时,Cypress 的运行速度可能会变得非常慢。 我们需要找到一些解决方案来改善 Cypress 的性能,确保...

    1 年前
  • Docker 和 Kubernetes 技术应用精讲

    前言 随着云计算时代的到来,容器技术越来越受到关注。容器化技术以其高效、轻量、可移植、可复制等特点,正在逐步改变传统的软件开发和部署方式。其中,Docker 和 Kubernetes 是当前最为流行的...

    1 年前
  • Router 解析:window.history 和 API 与默认行为

    在前端开发中,路由是一个非常重要的概念,它通常用于页面之间的跳转和状态管理等场景。其中,路由的实现需要解析 URL,然后根据解析结果执行相应的操作。在本文中,我们将讨论 Router 中如何解析 UR...

    1 年前
  • Chai expect 断言中如何判断一个变量是否为数值类型?

    在前端开发中,我们经常需要使用断言库来验证代码的正确性。Chai 是一个比较流行的 JavaScript 断言库,它提供了多种 API 用来满足我们的测试需求。其中, expect API 可以直接作...

    1 年前
  • 使用 Fastify 和 JSON Web Token 进行用户认证

    在 Web 应用中,用户认证是一个至关重要的功能。它用于确定用户的身份以及授权用户访问受保护的资源。在本文中,我们将介绍如何使用 Fastify 和 JSON Web Token 进行用户认证。

    1 年前
  • PM2 管理 Node.js 服务

    在 Node.js 后端开发中,为了确保 Node.js 应用的稳定运行,我们需要使用进程管理工具。PM2 是一款开源免费的 Node.js 进程管理工具,它可以方便地管理 Node.js 应用的状态...

    1 年前
  • 将 TypeScript 集成到 WebStorm 中的方法与技巧

    在前端开发中,使用 TypeScript 可以帮助开发者更好地编写可维护、可扩展的代码。WebStorm 是一款强大的前端开发工具,通过将 TypeScript 集成到 WebStorm 中,可以提高...

    1 年前
  • Next.js如何解决跨域问题

    什么是跨域? 跨域是指在前端页面中访问来自其他域名或端口的数据或资源时会出现的安全限制问题。出于安全考虑,浏览器阻止页面读取不属于同一网站的资源。如果我们的应用需要从其他域名请求数据,则需要使用一些技...

    1 年前
  • Serverless 架构的安全问题及如何解决

    前言 近几年,Serverless 架构在前端开发中越来越受欢迎。相对于传统的架构方式,Serverless 架构无需关心服务器的运维管理和扩容问题,开发者可以更加专注于业务逻辑的开发和实现。

    1 年前
  • PWA 技术实现数据动态更新的方案

    前言 PWA(Progressive Web Apps)是一种新兴的网络应用技术,通过 PWA 技术,我们可以实现传统网页无法实现的离线缓存、消息推送等功能,提高网页应用的用户体验。

    1 年前
  • 在 ES10 中使用 Promise.allSettled() 轻松解决异常处理问题

    在前端开发过程中,遇到异步操作出错或失败的情况时,我们往往需要对每个操作的错误进行捕获和处理。这可以通过 try/catch 语句或 .then().catch() 的链式调用来实现。

    1 年前
  • 解决 Hapi 框架中的错误:Bad Gateway 502

    当我们使用 Hapi 框架开发 web 应用时,有时候会遇到 Bad Gateway 502 这个错误提示。这个错误通常出现在 Hapi 和其他服务器之间的代理出现故障时。

    1 年前
  • 使用 ES6 中的 Proxy 构建业务逻辑流控

    在前端开发中,我们常常需要控制一系列业务逻辑的执行流程。具体来说,我们希望在某个逻辑顺序中,一旦某个条件不满足或者某个操作失败,就能够立即中断逻辑的后续执行,避免造成不必要的麻烦。

    1 年前
  • SASS 与 Webpack 的使用技巧

    SASS 与 Webpack 的使用技巧 随着前端技术的不断发展,越来越多的开发者开始使用 SASS 以及 Webpack 来提高代码质量和开发效率。SASS 可以帮助开发者更加简洁地书写 CSS,而...

    1 年前
  • Docker Swarm 中使用 Portainer 进行可视化管理

    前言 Docker Swarm 是 Docker 的一项容器编排技术,通过在不同主机上组织和管理 Docker 容器,实现高可用、高效的应用部署和运维。在使用 Docker Swarm 进行管理时,通...

    1 年前
  • Koa2 开发中如何优雅地处理日志

    在Koa2开发中,日志的处理是十分重要的一环。它可以帮助我们更好地了解程序运作情况,发现潜在问题,也能为后续的优化提供指导。本文将详细介绍Koa2中如何优雅地处理日志,帮助读者更好地理解日志的作用以及...

    1 年前
  • ECMAScript 2020 新特性下使用全局对象 globalThis 更安全

    在 JavaScript 开发中,this 关键字通常用于引用当前函数的上下文。一般情况下,this 关键字是指向全局对象 window 或者 global 的。然而,在一些特殊情况下,this 可能...

    1 年前

相关推荐

    暂无文章