9. Vue - vue-cli
一、前端开发工具
1. Node.js
Node.js是一个基于Chrome v8引擎的JavaScript运行环境。JavaScript本来只能跑在浏览器上,然后Node.js就是一种能让js直接运行在操作系统的工具。并且他就能让JS代码在操作系统上实现一些类似的操作等功能。Node.js使用了一个事件驱动、非阻塞I/O的模型,使其轻量又高效。
2. npm介绍
npm是JavaScript世界的包管理工具,并且是Node.js平台的默认包管理工具。(类似python中的pip一样)
(1) 基本命令
// 更新npm至最新的稳定版本
npm install npm@latest -g
// 安装第三方包,会在当前目录下创建一个node_modules的目录,然后下载的包保存至此
npm install 包名
// -g 全局安装包、并且 @ 制定版本
npm install bootstrap@3.3.7 -g
// 安装开发阶段使用的包(有些包只在开发阶段使用,实际生产环境下运行并不需要)
// (比如:代码格式化工具、代码打包工具等)
npm install 包名 -D
// 卸载包
npm uninstall 包名
// 更新包
npm update 包名
// 查看已安装的包
npm list
(2) 初始化一个新项目
// 在你的项目目录下,执行以下命令来初始化你的项目。(会出现很多选项让你填写)
npm init
// 该命令会在当前目录下创建一个名为package.json的文件,里面记录该项目的一些介绍
// 信息和包的依赖信息
{
"name": "demo",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}
// 使用默认配置初始化项目
npm init -y 或 npm init --yes
(3) 使用cnpm
// 因为连接国外服务器较慢,可使用国内淘宝团队的镜像源,安装cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org
//使用cnpm;save 把依赖包的名称和版本写到我项目的依赖信息里
cnpm install bootstrap@3.3.7 --save
3. webpack介绍
(1) 定义
前端开发的一个坑在于浏览器加载JS文件的时候是从上到下,不存在模块化这样一个概念的。我们很正常的会把实现不同功能的代码保存在不同的JS文件中,这些JS文件之间传递变量只能通过定义全局变量,这样我们用到的JS文件越多,暴露的全局变量就越多,越容易出现变量被覆盖的隐患。
node.js出现后,我们的JS文件可以直接跑在操作系统上,并在node.js中支持模块化的JS。它通过定义输入和输出来解决不同模块间的数据传递问题。这里就类似于python中的包的概念。
现在前端开发都习惯在后端先写代码,利用后端开发模块化的方式来解决上面JS历史遗留问题。但这样写JS文件浏览器就不认识了。
(2) 解决浏览器认识后端写的JS文件 —— webpack
webpack就是一个把我们在后端写的JS代码打包成浏览器认识的JS文件(当然webpack很强大它可以打包JS、CSS、图片等静态资源)
(3) webpack安装
// 安装webpack和webpack-cli
npm install webpack webpack-cli -g -D
// 查看webpack和webpack-cli的版本
webpack -V
webpack-cli -V
(4) 示例
// a.js
let abc = 'hq';
function sayHi(){
console.log('Hello world!');
}
// 抛出sayHI
module.exports = {sayHi}
// b.js
// 从a.js导入sayHi
let {sayHi} = require('./a.js')
sayHi() // Hello world!
// 使用webpack打包;默认输出打包后的结果到./dist/main.js
webpack ./src/b.js
注意:新版本的webpack需要搭配webpack-cli一起使用
4. Vue-cli
vue-cli是一个Vue官方提供的快速构建Vue项目的脚手架工具,能够极大的提高开发效率。
// Vue-cli安装
npm install -g @vue/cli
// 创建一个Vue-cli项目
vue create hello-world
// vue-cli图形界面创建项目
vue ui
// vue-cli项目启动,需要先切换至vue-cli项目目录下
npm run serve
//vue-cli项目打包
npm run build
(1) 项目目录解释

(2) 补充 - 拿到一个vue项目,把它运行起来
① 先切换到项目目录下
② 安装项目依赖包
npm install 或者 cnpm install
③ 启动项目
npm run serve 或者 npm run dev
④项目开发完成,要打包上线
npm run build
9. Vue - vue-cli的更多相关文章
- Javascript - Vue - vue对象
vue提供了一整套前端解决方案,可以提升企业开发效率 vue的处理过程 app.js 项目入口,所有请求最先进入此模块进行处理 route.js 由app.js调用,处理路由的分发 controlle ...
- Vue - vue.js 常用指令
Vue - vue.js 常用指令 目录: 一. vuejs模板语法之常用指令 1. 常用指令: v-html 2. 常用指令: v-text 3. 常用指令: v-for 4. 常用指令: v-if ...
- 前端开发 Vue Vue.js和Nodejs的关系
首先vue.js 是库,不是框架,不是框架,不是框架. Vue.js 使用了基于 HTML 的模版语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据. Vue.js 的核心是一个允许你 ...
- [Vue] : Vue概述
什么是Vue.js Vue.js 是目前最火的一个前端框架,React是最流行的一个前端框架. Vue.js 是前端的主流框架之一,和Angular.js.React.js 一起,并成为前端三大主流框 ...
- Property 'validate' does not exist on type 'Element | Element[] | Vue | Vue[]'. Property 'valid...
使用vue-cli 3.0+Element-ui时候,调用form表单校验时候出现的问题是: Property 'validate' does not exist on type 'Element | ...
- Vue Vue.use() / Vue.component / router-view
Vue.use Vue.use 的作用是安装插件 Vue.use 接收一个参数 如果这个参数是函数的话,Vue.use 直接调用这个函数注册组件 如果这个参数是对象的话,Vue.use 将调用 ins ...
- vue & vue router & dynamic router
vue & vue router & dynamic router https://router.vuejs.org/guide/essentials/dynamic-matching ...
- vue & vue router & match bug
vue & vue router & match bug match bugs solution name must be router https://stackoverflow.c ...
- vue之cli脚手架安装和webpack-simple模板项目生成
ue-cli 是一个官方发布 vue.js 项目脚手架,使用 vue-cli 可以快速创建 vue 项目. GitHub地址是:https://github.com/vuejs/vue-cli 一.安 ...
- vue搭建cli脚手架环境(出现问题及解决,主要是node版本低)
Vue 提供了一个官方的cli,为单页面应用 (SPA) 快速搭建繁杂的脚手架. 一.vue cli脚手架 脚手架通过webpack搭建开发环境 使用ES6语法 打包压缩js为一个文件 项目文件在环境 ...
随机推荐
- HttpRunner学习2--用例格式和简单使用
前言 HttpRunner中,测试用例支持两种文件格式:YAML 和 JSON.两种格式的用例是完全等价的,对于相同的信息内容,使用 YAML /JSON 得到的测试结果和报告也是一致的. 本人环境: ...
- Prometheus学习系列(五)之Prometheus 规则(rule)、模板配置说明
前言 本文来自Prometheus官网手册1.2.3.4和 Prometheus简介1.2.3.4 记录规则 一.配置规则 Prometheus支持两种类型的规则,这些规则可以定期配置,然后定期评估: ...
- How to: Calculate a Property Value Based on Values from a Detail Collection 如何:基于详细信息集合中的值计算属性值
This topic describes how to implement a business class, so that one of its properties is calculated ...
- JavaScript for 、for...of 、for...in 等 iteration 效率测试
由于不同浏览器,不同版本性能不一,且控制台本质是是套用了一大堆eval,沙盒化程度高,所以需使用node环境测试来提高准确性 // 准备待测数组 const NUM = 1e7; let arr = ...
- Dynamics 365利用Web API对视图进行查询
我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...
- Mac环境下执行npm install报权限错误解决办法
1. 一般情况 sudo npm install 注:这相当于windows系统中的 以管理员身份执行,加上sudo后会要求你输入苹果账号密码,而且在输入的时候是没有字符提示的,密码输入完直接按回车就 ...
- Vant-Weap通过事件获取值
van-field框的使用 和通过事件获取值 <van-cell-group> <van-field value="{{username}}" label=&qu ...
- csp2019后的感慨
你还记得曾经加入oi的初衷吗? ... 我们都不想输,可谁都没有赢... --前言 没有太大的感想,也不配去写感想...就记录一下初学者失败的原因吧.希望看过的人能引以为戒. 做题的时候,不到万不得已 ...
- Laravel 即时应用的一种实现方式
即时交互的应用 在现代的 Web 应用中很多场景都需要运用到即时通讯,比如说最常见的支付回调,与三方登录.这些业务场景都基本需要遵循以下流程: 客户端触发相关业务,并产生第三方应用的操作(比如支付) ...
- AES 对称加密
package com.skynet.rimp.common.utils.string; import java.io.UnsupportedEncodingException; import jav ...