导航:首页 > 源码编译 > 在代码编译器里面使用vue

在代码编译器里面使用vue

发布时间:2023-11-06 19:07:31

㈠ 如何优雅地使用 VSCode 来编辑 vue 文件

先来扒一扒使用 PHPStorm 遇到的问题:
vue文件虽然可以通过插件来解决高亮问题,但是 <script> 标签中的 ES6 代码的识别老是出问题,箭头函数有的时候能正确识别,有的时候会报错
无法正确识别 vue 文件中的 jsx 语法
无法正确识别和高亮 vue 文件 <style> 标签中使用的 less 语法
vue文件中 <template> 部分使用了大量的自定义标签(自定义组件)和自定义属性,会报一堆 warning
经常性卡死
webpack实时编译的错误不能直接展示在代码编辑器内,还得自己到控制台中查看
如何安装 vscode
很简单,传送门: 官网下载安装
第一步,要支持 vue 文件的基本语法高亮
这里,我试过好3个插件: vue , VueHelper 和 vetur ,最终选择使用 vetur 。
安装插件: Ctrl + P 然后输入 ext install vetur 然后回车点安装即可。
p.s: vscode 的插件安装比 PHPStorm 的插件安装更快捷方便,安装完成后还不用重启整个程序,只要重新加载下工作区窗口就可以了。
安装完 vetur 后还需要加上这样一段配置下:
"emmet.syntaxProfiles": {
"vue-html": "html",
"vue": "html"
}
这时可以打开一个vue文件试试,注意下右下角状态栏是否正确识别为 vue 类型:
如果被识别为 text 或 html ,则记得要点击切换下。
第二步,要支持 vue 文件的 ESLint
可能还有人会问为什么要 ESLint ?没有 lint 的代码虽然也可能可以正确运行,但是 lint 作为编译前的一道检测成本更小,而且更快。此外, ESLint 还有很多规范是帮助我们写出更加优雅而不容易出错的代码的。
jshint 本来也是个不错的选择,但是 ESLint 对 jsx 的支持让我还是选择了 ESLint.
安装插件: Ctrl + P 然后输入 ext install eslint 然后回车点安装即可。
ESLint 不是安装后就可以用的,还需要一些环境和配置:
首先,需要全局的 ESLint , 如果没有安装可以使用 npm install -g eslint 来安装。
其次,vue文件是类 HTML 的文件,为了支持对 vue 文件的 ESLint ,需要 eslint-plugin-html 这个插件。可以使用 npm install -g eslint-plugin-html 来安装
接着,安装了 HTML 插件后,还需要在 vscode 中配置下 ESLint:
"eslint.validate": [
"javascript",
"javascriptreact",
"html",
"vue"
],
"eslint.options": {
"plugins": ["html"]
},
最后,别忘了在项目根目录下创建 .eslintrc.json , 如果还没创建,还可以使用下面快捷命令来创建:
这样一来 vue 中写的 js 代码也能正确地被 lint 了。
要是不小心少个括号之类的都可以有对应的报错:
多余 import 也都能报错:
还是蛮智能的。
第三步,配置构建任务
vue 项目的构建我选择用 webpack ,不过,并不是直接使用命令行下的 webpack 而是使用了 webpack 的 API 写的 node 脚本。 脚本主要有两个,一个是 build/bin/build.js 另一个是 build/bin/watch.js 分别是单次构建和实时构建。
于是乎,对应 vscode 中的 tasks 也是有两个: build 和 watch ,简单配置如下:
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
// use `Ctrl+P` and type `task` + SPACE + <taskName> to run a task
"version": "0.1.0",
"tasks": [
{
"taskName": "build",
"echoCommand": true,
"command": "node",
"args": [
"build/bin/build.js"
],
"suppressTaskName": true,
"isBuildCommand": true
},
{
"taskName": "watch",
"echoCommand": true,
"command": "node",
"args": [
"build/bin/watch.js"
],
"suppressTaskName": true,
"isBackground": true
}
]
}
这样配置好后,按 Ctrl + Shift + B 即可开始单次构建。 不过单次构建比较慢(要10秒+),一般我都用实时构建: Ctrl + P 然后输入 task watch <回车> 即可开始实时构建。实时构建除了第一次比较慢,其他时候还是非常快的,一般1秒内就可以构建好。
最后,webpack 构建错误提示
webpack 构建失败后一般都会有错误提示,会显示在输出窗口中:
为啥是彩色的? 因为装了 Output Colorizer 这个插件。
当然,这样还是不够方便 -- 实时构建是后台运行的,“输出”窗口一般也都是在后台,每次保存完文件还得点开岂不麻烦。
要是能做到像 ESLint 一样直接把错误标到编辑器上面就好了。真的可以吗?翻了下 vscode 的文档,发现有神奇的 problemMatcher -- 可以对任务输出进行解析,解析出的问题会显示在“问题”窗口中,如果还有文件名行号和列号,则会在源代码编辑窗口中对应的位置标出来。
先放个最终效果:
在这个文件的第32行,import 了一个不存在的模块,这样的错误在 ESLint 中当然是检查不出来的,然而在 webpack 的实时构建中会报错:
这个事情的困难在于两点:
如何通过 problemMatcher 把这个错误给抓出来?
如何找到错误对应的行号?(如果可能的话,还有列号)
webpack的错误输出格式并不是完全统一的,而且有些还没有行号 -- 一方面可能是 webpack 的 bug ,另一方面 vue 文件在构建的时候会拆成 template, script 和 style 三个方面进行构建,报错的行号可能对不上。
最终我的解决方案是对 webpack 的错误重新格式化输出,然后匹配:
首先,重新格式化输出需要 format-webpack-stats-errors-warnings 这个包(偶新写的)
npm install --save-dev format-webpack-stats-errors-warnings
然后,到 build/bin/build.js 和 build/bin/watch.js 中在 webpack 构建完成的回调函数中增加这个格式化后的输出:
更多使用介绍见 github
最后,在 .vscode/tasks.json 中,每个任务下添加 problemWatcher :
// ...
{
"taskName": "build",
// ...
// build 任务的:
"problemMatcher": {
"owner": "webpack",
"fileLocation": [
"relative",
"${workspaceRoot}"
],
"pattern": {
"regexp": "^!>(\\w+): (\\S+)?:(\\d+),(\\d+)(?:~(?:(\\d+),)?(\\d+))?: (.*)$",
"severity": 1,
"file": 2,
"line": 3,
"column": 4,
"endLine": 5,
"endColumn": 6,
"message": 7
}
}
}
{
"taskName": "watch",
// ...
// watch 任务的:
"problemMatcher": {
"owner": "webpack",
"fileLocation": [
"relative",
"${workspaceRoot}"
],
"pattern": {
"regexp": "^!>(\\w+): (\\S+)?:(\\d+),(\\d+)(?:~(?:(\\d+),)?(\\d+))?: (.*)$",
"severity": 1,
"file": 2,
"line": 3,
"column": 4,
"endLine": 5,
"endColumn": 6,
"message": 7
},
"watching": {
"activeOnStart": true,
"beginsPattern": "^\\s*Webpack begin run",
"endsPattern": "^\\s*Build complete at"
}
}
// ...
}
// ...
注:在 watch 任务中,为了匹配何时开始和何时结束,我在 webpack 构建的 run 和 watch 时增加了一个 console.log('Webpack begin run') 的打印,而在构建完成后增加了一个 console.log("Build complete at ..") 的打印。

㈡ 如何在HTML文件中使用vue的开发者工具

用法:使用基础 Vue 构造器,创建一个“子类”。参数是一个包含组件选项的对象。

_ata 选项是特例,需要注意 - 在 Vue.extend() 中它必须是函数


_xtend 创建的是 Vue 构造器,而不是我们平时常写的组件实例,所以不可以通过 new Vue({ components: testExtend }) 来直接使用,需要通过 new Profile().$mount('selector选择器') 来挂载到指定的元素上。


_ue.extend + vm.$mount 组合

㈢ vuePress里面怎么写vue.js代码

2.1 新建文件夹docs

配置package.json,添加下述两行

{
"scripts": {
"docs:dev": "vuepress dev docs",
"docs:build": "vuepress build docs"
}}

进入docs文件夹 创建 README.md文件

此时运行命令

npm run docs:dev

此时文件夹结构

study
+--docs
+----README.md
+--package.json

运行访问http://localhost:8080/

image.png

结束运行 ,执行命令

npm run docs:build

然后看文件变化 多了个node_moles
docs 多了个 .vuepress文件夹

study+--docs+----.vuepress+------ dist //打包后的文件夹+----README.md+--package.json+--node_moles

我们在.vuepress 创建
config.js 文件
添加

mole.exports = {
title: 'Adroi媒体API 接口文档', // 设置网站标题
description : 'Adroi',
base : '/v1/adroi-h5/adroiapi/',
themeConfig : {
nav : [
{ text: '接口定义', link: '/apiword' },
{ text: '接口字段定义', link: '/api' },
{ text: '附录:错误码', link: '/error' }
],
sidebar: {
'/' : [
"/", //指的是根目录的md文件 也就是 README.md 里面的内容
"apiword", 根目录创建 apiword.md文件 "api",根目录创建 api.md文件 "error" 根目录创建 error.md文件 ]
},
sidebarDepth : 2
}}

image.png

3)添加静态图片

![An image](./baner.png)

4)添加指定样式

添加样式 分两种 一种不用预编译处理、一种使用

//不使用预编译处理//直接在md文件底部添上<style></style>

//使用预编译处理
首先需要安装所需的模块 举例:stylus
npm i stylus stylus-loader -D<style lang="stylus"></style>

5)vuePress可添加js代码

既然是尤大大的作品 那肯定是支持vue语法的
在MD文件中直接写入js的语法

<script>
export default{
//...do something
}</script>

6)代码发布或上传至服务器

关于发布问题:首先我们知道在打包后的文件都是静态文件之前的MD文件都被打包成html静态文件了,其次在文件config.js中 base至关重要

6-1发布在云盘中如网络云盘 github上可直接通过链接访问

在云盘上创建根目录如vuepress,然后在config中 bese这部分就填写/vuepress,然后进行打包操作,再然后把打包后的文件上传至云盘上的vuepress文件中

6-2 通过服务器发布

在服务器上安装Apache或者nginx 这里拿nginx举例:
至于nginx 安装 以及配置文件的解读使用 我这里就不详述了,不了解的童鞋可以自己查阅相关文件

同样base的填写很重要

//为了简单明了 我们把打包好的文件放入nginx中html文件下 之前的文件可以清空server {
listen 8081; //监听8081端口
server_name localhost; //localhost:8081即可指向也可写别名如local.vuepress.com.cn 那我们访问这个端口的别名加端口就可以
location / {
root /nginx/nginx-1.9.15/html; //至关重要你的入口文件在本机的位置
index index.html index.htm; //入口文件
}
}



转载于:https://www.jianshu.com/p/7a2cc8a7f40c

阅读全文

与在代码编译器里面使用vue相关的资料

热点内容
java方法和函数 浏览:416
程序员衣服穿反 浏览:957
java多类继承 浏览:157
怎么用多玩我的世界连接服务器地址 浏览:481
为什么华为手机比安卓流畅 浏览:175
javamap多线程 浏览:226
卡西欧app怎么改时间 浏览:841
jquery压缩图片 浏览:970
用纸筒做解压东西 浏览:236
神奇宝贝服务器如何tp 浏览:242
云服务器支持退货吗 浏览:277
贷款等额本息算法 浏览:188
根服务器地址配置 浏览:499
单片机是软件还是硬件 浏览:624
vivo手机怎么看编译编号 浏览:320
塑钢扣条算法 浏览:301
linux应用程序安装 浏览:414
linux怎么查找命令 浏览:431
安卓12原生和非原生是什么意思 浏览:277
四川广电怎么安装app 浏览:6