第一个 vue-cli 项目

news2024/11/24 16:44:40

一、什么是 vue-cli

        vue-cli 官方提供的一个脚手架,用于快速生成一个 vue 的项目模板;预先定义好的目录结构及基础代码,就好比咱们在创建 Maven 项目时可以选择创建一个骨架项目,这个骨架项目就是脚手架,我们的开发更加的快速;

1.1 主要的功能

        a、统一的目录结构

        b、本地调试

        c、热部署

        d、单元测试

        e、集成打包上线

1.2 需要安装的环境

1.2.1 安装 node.js

        官网地址在这,一步一步的安装就行了。

        在 cmd 下输入 node -v,查看是否可以正确打印出版本号即可,

        在 cmd 下输入 npm -v,查看是否可以正确打印出版本号即可,这个 npm 就是一个软件包管理管理工具,就和 linux 下的 apt 软件安装差不多。

1.2.2 安装镜像加速器

        需要安装 node.js 的淘宝镜像加速器 cnpm,这样子的话,下载会快很多,需要使用管理员权限启动 cmd 的命令窗口,否则有时会下载不成功。

# -g 就是全局安装
npm install cnpm -g

        由于刚才是全局安装的,安装完成之后可以在下面的目录下看到安装的东西,有些文如下所示:

 1.2.3 安装 vue-cli

cnpm install vue-cli -g

# 测试是否安装成功
# 查看可以基于哪些模板创建 vue 应用程序,通常我们选择 webpack
vue list

二、第一个 vue-cli 应用程序

2.1 创建 myvue 项目

        1、我们新创建一个文件夹 vue

        2、创建一个基于 webpack 模板的 vue 应用程序

# 1、切换到刚才创建的 vue 目录下

# 2、执行下面的命令这里的 myvue 是项目名称,可以根据自己的需求起名
vue init webpack myvue

# 3、一路都选择no即可;
Project name:项目名称,默认 回车 即可

Project description:项目描述,默认 回车 即可

Author:项目作者,默认 回车 即可

Install vue-router:是否安装 vue-router,选择 n 不安装(后期需要再手动添加)

Use ESLint to lint your code:是否使用 ESLint 做代码检查,选择 n 不安装(后期需要再手动添加)

Set up unit tests:单元测试相关,选择 n 不安装(后期需要再手动添加)

Setup e2e tests with Nightwatch:单元测试相关,选择 n 不安装(后期需要再手动添加)

Should we run npm install for you after the project has been created:创建完成后直接初始化,选择 n,我们手动执行;运行结果!

        3、切换到我们刚才创建的 myvue 的目录下,执行以下的命令

cd myvue

# 安装这个项目的所有依赖环境
npm install

# 启动项目
npm run dev

        执行结束后,多了很多的依赖

        安装并运行成功后在浏览器输入 http://localhost:8080

        效果如下:

2.2 vue-cli 的目录结构

2.2.1 项目整体目录

        使用 idea 打开我们刚才创建的 myvue 项目,项目所展示的目录结构如下:

        1、build 和 config:WebPack 配置文件

        2、node_modules:用于存放 npm install 安装的依赖文件

        3、src: 项目源码目录

        4、static:静态资源文件

        5、.babelrc:Babel 配置文件,主要作用是将 ES6 转换为 ES5

        6、.editorconfig:编辑器配置

        7、eslintignore:需要忽略的语法检查配置文件

        8、.gitignore:git 忽略的配置文件

        9、.postcssrc.js:css 相关配置文件,其中内部的 module.exports 是 NodeJS 模块化语法

        10、index.html:首页,仅作为模板页,实际开发时不使用

        11、package.json:项目的配置文件

                11-1、name:项目名称

                11-2、version:项目版本

                11-3、description:项目描述

                11-4、author:项目作者

                11-5、scripts:封装常用命令

                11-6、dependencies:生产环境依赖

                11-7、devDependencies:开发环境依赖 

2.2.2 src 目录

        src 目录是项目的源码目录,所有代码都会写在这里。

2.2.3 main.js

        项目的入口文件,我们知道所以的程序都会有一个入口,类似于 java 的 main。

// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'

Vue.config.productionTip = false

/* eslint-disable no-new */
new Vue({
  el: '#app',
  components: { App },
  template: '<App/>'
})

        1、import Vue from 'vue' :ES6 写法,会被转换成 require("vue");(require 是 NodeJS 提供的模块加载器)

        2、import App from './App' :意思同上,但是指定了查找路径 ./ 为当前目录

        3、Vue.config.productionTip = false :关闭浏览器控制台关于环境的相关提示

        4、new Vue({...}) :实例化 Vue

        5、el: '#app' :查找 index.html 中 id 为 app 的元素

        6、template: '' :模板,会将 index.html 中替换为 components: { App } :引入组件,使用的是 import App from './App' 定义的 App 组件

2.2.4 App.vue

<template>
  <div id="app">
    <img src="./assets/logo.png">
    <HelloWorld/>
  </div>
</template>

<script>
import HelloWorld from './components/HelloWorld'

export default {
  name: 'App',
  components: {
    HelloWorld
  }
}
</script>

<style>
#app {
  font-family: 'Avenir', Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>

        1、template:HTML 代码模板,会替换 < App /> 中的内容

        2、import HelloWorld from './components/HelloWorld':引入 HelloWorld 组件用于替换 template中的 < HelloWorld/>

        3、export default{...}:导出 NodeJS 对象,作用是可以通过 import 关键字导入

                3-1、name: 'App':定义组件的名称

                3-2、components: { HelloWorld }:定义子组件

        4、helloVue 中,关于 < style scoped> 的说明:CSS 样式仅在当前组件有效,声明了样式的作用域,是当前的界面私有的。

三、安装 Webpack

        webpack 是一款模块加载器兼打包工具,他能把各种资源,如:JSJSXES6SASS

LESS、图片等都作为模块来处理和使用。

 3.1 安装

npm install webpack -g

npm install webpack-cli -g

        测试是否安装成功:

npm webpack -v

npm webpack-cli -v

3.2 使用 webpack

        1、创建项目 webpack-study,空的就可以

        2、在项目中创建一个moudles 的目录,用于存放 js 模块等静态资源

        3 、moudles 下创建模块文件,如 hello.js,用于编写 JS 模块相关代码

// 暴露一个方法
exports.sayHi = function (){
    document.write("<h1>我长的快</h1>");
};

        4、modules 下创建一个名为 main.js 的入口文件,用于打包时设置 entry 属性

var hello = require("./hello");
hello.sayHi();

        5、在项目目录下创建 webpack.config.js 配置文件,使用 webpack 命令打包

module.exports={
    entry:'./modules/main.js',
    output:{
        filename:'./js/bundle.js'
    }
}

        6、在控制台运行 webpack 命令,会生成一个 dist 文件夹,里面就会有生成的 bundle.js 文件。

        7、在项目目录下创建 HTML 页面,如 index.html,导入 webpack 打包后的 js 文件 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script src="dist/js/bundle.js"></script>
</body>
</html>

        8、此时整个目录的文件结构如下所示:

        9、运行 html 看效果

3.3 说明

        可以在执行 webpack 命令的时候添加 watch 参数,用于实时监听变化,但是一般不这么用

webpack --watch

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/825614.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

为什么数字孪生和GIS高度互补?它们是如何实现互补的?

在数字化时代&#xff0c;数字孪生和GIS作为两项重要技术&#xff0c;它们的融合正日益受到人们的关注和认可。数字孪生是将实体世界与数字世界紧密结合的技术&#xff0c;可以创建实时的虚拟副本&#xff0c;对物理系统进行模拟、优化和预测。而GIS则是用于收集、管理、分析和…

js将当前时间转换成标准的年月日

直接上代码了&#xff1a; /*** * param e 转换成标准的年月日进行拆分* returns */changeCreationtime(e:any) {let year e.getFullYear(),month (e.getMonth() 1) > 9 ? (e.getMonth() 1) : 0 (e.getMonth() 1),day e.getDate() > 9 ? e.getDate() : 0 e.get…

__block的深入研究

__block可以用于解决block内部无法修改auto变量值的问题 __block不能修饰全局变量、静态变量&#xff08;static&#xff09; 编译器会将__block变量包装成一个对象 调用的是&#xff0c;从__Block_byref_a_0的指针找到 a所在的内存&#xff0c;然后修改值 第一层拷贝&…

VLAN介绍

目录 VLAN的特点: VLAN的好处: VLAN的实现原理 VLAN标签 VLAN的划分方式 接口划分VLAN--接口类型 Access接口 Trunk接口 Hybrid接口 实现VLAN之间通信 使用路由器物理接口 使用子接口 使用三层交换机的VLANIF接口 配置 VLANIF的转发流程 三层交换机参与下的三层…

【图解】Mask R-CNN 架构

Mask R-CNN 是一种自顶向下&#xff08;top-down&#xff09;的姿态估计模型&#xff0c;它是在 Faster R-CNN [44] 这个目标检测框架的基础上扩展而来的。目标检测是指从图像中检测出不同类别的物体&#xff0c;并且输出它们的边界框&#xff08;bounding box&#xff09;。 …

exp/imp选项说明

1、exp选项 2、imp选项 3、举例 (1)、imp system/manager filetank logtank fromuser(seapark,amy) touser(seapark1, amy1);(2)、imp system/manager file(paycheck_1,paycheck_2,paycheck_3,paycheck_4) logpaycheck.log filesize1G fully;(3)、imp system/manager fileseap…

【css】解决元素浮动溢出问题

如果一个元素比包含它的元素高&#xff0c;并且它是浮动的&#xff0c;它将“溢出”到其容器之外&#xff1a;然后可以向包含元素添加 overflow: auto;&#xff0c;来解决此问题&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html> <head> <style>…

如何克服学习和工作中的焦虑和迷茫

如何克服学习和工作中的焦虑和迷茫 &#x1f607;博主简介&#xff1a;我是一名正在攻读研究生学位的人工智能专业学生&#xff0c;我可以为计算机、人工智能相关本科生和研究生提供排忧解惑的服务。如果您有任何问题或困惑&#xff0c;欢迎随时来交流哦&#xff01;&#x1f6…

落实《中国人民银行业务领域数据安全管理办法》,极盾科技是怎么做的?

“软标准”变成“硬规范”&#xff01; 近日&#xff0c;央行发布《中国人民银行业务领域数据安全管理办法》征求意见稿&#xff08;以下称《管理办法》&#xff09;&#xff0c;以部门规范性文件的方式&#xff0c;全面衔接《数据安全法》&#xff0c;细化明确中国人民银行业…

村田授权代理:共模扼流线圈针对汽车专用设备高频噪声的降噪对策

车载市场正不断扩充ADAS、自动驾驶、V2X、车载信息系统等的应用。由于此类应用要处理庞大的信息&#xff0c;因此为了执行处理&#xff0c;内部处理信号的处理速度亦不断高速化。另一方面&#xff0c;由于部件数量增多&#xff0c;安装密度增大&#xff0c;因此要求部件小型化。…

364 · 接雨水 II

链接&#xff1a;九章算法 - 帮助更多程序员找到好工作&#xff0c;硅谷顶尖IT企业工程师实时在线授课为你传授面试技巧 题解&#xff1a; 九章算法 - 帮助更多程序员找到好工作&#xff0c;硅谷顶尖IT企业工程师实时在线授课为你传授面试技巧

OpenAI的提供的Model简要介绍

OpenAI提供的model 通过OpenAI的接口可以查看所有支持的模型(目前的账号无GPT4的权限&#xff0c;所以没有列举GPT4相关的模型)。 import os import openai import pandas as pd from IPython.display import displayopenai.api_key os.getenv("OPENAI_API_KEY")…

记录一下点亮过的技能点

一年级 软件工程导论也就是 计算机导论&#xff0c;主要介绍计算机的发展历程概况&#xff0c;对计算机有个大体的了解。 编程语言学习 C语言&#xff0c;基础语法会用&#xff0c;其实现在忘得有点多了&#xff0c;需要多查询文档才行。 二年级 计算机组成原理&#xff0c;…

【LeetCode每日一题】——807.保持城市天际线

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 矩阵 二【题目难度】 中等 三【题目编号】 1572.矩阵对角线元素的和 四【题目描述】 给你一…

助力工业物联网,工业大数据之费用事实指标分析及实现【二十四】

文章目录 1&#xff1a;费用事实指标分析及实现2&#xff1a;差旅事实指标分析及实现3&#xff1a;网点物料事实指标分析及实现 1&#xff1a;费用事实指标分析及实现 目标&#xff1a;实现DWB层费用报销事实指标表的构建 路径 step1&#xff1a;目标需求step2&#xff1a;数据…

有砟铁路三维地质雷达检测数值模拟研究

有砟铁路三维地质雷达无损检测数值模拟研究 前言 据统计&#xff0c;全国铁路营业里程超过14.63万公里&#xff0c;其中高铁超过3.8万公里&#xff1b;全国铁路路网密度152.3公里/万平方公里。有砟铁路主要建造于2012年以前&#xff0c;截止2012年&#xff0c;全国有砟铁路达…

Baklib: 0代码的在线帮助中心

Baklib是一款0代码的在线帮助中心工具&#xff0c;旨在帮助企业和开发者快速搭建和管理自己的帮助中心。无需编写任何代码&#xff0c;只需几个简单的步骤&#xff0c;即可创建一个功能齐全、易于使用的在线帮助中心。Baklib提供了丰富的功能和灵活的定制选项&#xff0c;使用户…

关于迪文屏文本显示 字库生成

生成 30的字体 界面上显示 屏幕上文本控件的点阵数 为字库生成软件的 宽和高 30 30 字库软件的下载链接 三、汉字字库生成 百度网盘链接&#xff1a;百度网盘 请输入提取码 提取码&#xff1a;1o5t https://blog.csdn.net/qq_34118600/article/details/115469371

「如何优雅有效利用周末和下班时间?」

文章目录 每日一句正能量前言下班的时间规划周末的时间规划提升周末体验感的好方法怎样才能获得充分的休息后记 每日一句正能量 眼望古城街尽&#xff0c;心谱落愁无序&#xff0c;旧时的誓言&#xff0c;曾而相似&#xff0c;河水在遵循河道的指引下&#xff0c;在曲折前进中放…

通过Python调用禅道API

禅道API接口&#xff0c;非REST接口 调试版本&#xff1a;11.3 百度出来的100%都用不了&#xff08;本篇除外...&#xff09;。于是自己修改了网上代码&#xff0c;先get session&#xff0c;再post登录&#xff0c;最后调用产品列表验证&#xff0c;实测通过。 1 import req…