[VueJsDev] 快速入门 - vue项目根目录配置文件
[VueJsDev] 目录列表
https://www.cnblogs.com/pengchenggang/p/17037320.html
vue项目根目录配置文件
::: details 目录
- vue项目根目录配置文件
- Part. 1: package.json - 入口文件
- Part. 2: jsconfig.json - 舒适度文件
- Part. 3: .eslintignore - 代码校验忽略
- Part. 4: .eslintrc.js - 代码校验配置
- Part. 5: .gitignore - git忽略
- Part. 6: .babelrc - 编译器
- Part. 7: .editorconfig - 统一编码风格
- Part. 8: .npmrc - 指定npm源
- Part. 9: .postcssrc.js - css加前缀
- Part. 10: .travis.yml - 自动构建
- Part. 11: alias.config.js - vue别名
- Part. 12: cypress.json - 测试配置
- Part. 13: .favorites.json - 收藏夹配置
- Part. 14: vue.config.js - vue2配置
- Proc. 15: 过程回溯
:::
根目录有很多常见的配置文件,这里重点强调下jsconfig.json
Part. 1: package.json - 入口文件
作用:package.json 是一个项目的入口,可以用
npm init -y创建
// jsconfig.json
{
"name": "projectName", // 项目名称
"version": "1.0.0", // 版本号
"author": "authorName<123456@qq.com>", // 作者
"private": false, // 是否可以打包发布,设置true就变成私有,就不允许打包发布
"type": "module", // 模块类型 是 CommonJS 还是 ES Module 默认不写是 CommonJS
"script": {}, // 执行命令脚本
"dependencies": {}, // 依赖库 --save 开发和打包后都带上的库
"devDependencies": {}, // 开发依赖库 --save-dev 只有开发的时候带上的库
"browserslist": [], // 根据浏览器环境,智能添加css前缀和js的polyfill垫片
"gitHooks": {}, // 钩子配置 经常会换成Husky
"lint-staged": {}, // 代码检查配置
}
Part. 2: jsconfig.json - 舒适度文件
作用:提高在写项目时舒适度的。如果是ts,文件名会是
tsconfig.json
jsconfig.json存在的目录表示本项目的根目录- vscode 会识别vue文件中的import export的变量,文件中的函数,可以自动跳转。
::: tip 坑中回忆
vscode 函数 变量 自动跳转的坑:
- 根目录没有
jsconfig.json有些会不起作用 - 根目录没有
jsconfig.json自动跳转的插件也会不起作用 - 自动跳转的插件 不要装重复了,导致冲突
:::
// jsconfig.json
{
"compilerOptions": {
"target": "ES6",
"module": "commonjs",
"allowSyntheticDefaultImports": true,
"baseUrl": "./",
"paths": {
"@/*": ["src/*"]
}
},
"include": [
"src/**/*"
],
"exclude": [
"node_modules"
]
}
Part. 3: .eslintignore - 代码校验忽略
作用: 哪些目录 文件 不进行 eslint校验
// .eslintignore
/public/pdfjs/
Part. 4: .eslintrc.js - 代码校验配置
作用: eslint校验
::: tip 坑中回忆
写代码的时候,你会发现eslint对你的各种报错,可以到这里将提示的报错配置都给关上。
:::
// .eslintrc.js
// http://eslint.org/docs/user-guide/configuring
module.exports = {
// 此项是用来告诉eslint找当前配置文件不能往父级查找
root: true,
// 此项是用来指定eslint解析器的,解析器必须符合规则,
// babel-eslint解析器是对babel解析器的包装使其与ESLint解析
parserOptions: {
parser: 'babel-eslint'
},
// 此项指定环境的全局变量,下面的配置指定为浏览器环境
env: {
browser: true
},
// https://github.com/feross/standard/blob/
// master/RULES.md#javascript-standard-style
// 此项是用来配置标准的js风格,就是说写代码的时候要规范的写,
// 如果你使用vs-code我觉得应该可以避免出错
extends: [
'plugin:vue/essential',
'@vue/standard'
],
// required to lint *.vue files
// 此项是用来提供插件的,插件名称省略了eslint-plugin-,
// 下面这个配置是用来规范html的
plugins: [
'vue',
'html'
],
// add your custom rules here
// 下面这些rules是用来设置从插件来的规范代码的规则,
// 使用必须去掉前缀eslint-plugin-
// 主要有如下的设置规则,可以设置字符串也可以设置数字,两者效果一致
// "off" -> 0 关闭规则
// "warn" -> 1 开启警告规则
//"error" -> 2 开启错误规则
// 了解了上面这些,下面这些代码相信也看的明白了
rules: {
'no-unused-vars': 'off',
'indent': ['off', 2],
'no-trailing-spaces': ['error', { 'skipBlankLines': true }],
'spaced-comment': ['error', 'always'],
'object-curly-spacing': ['error', 'always'],
// allow async-await
'generator-star-spacing': 'off',
// allow debugger during development
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
'vue/no-parsing-error': [
2, {
'x-invalid-end-tag': false
}],
'no-undef': 'off'
}
}
Part. 5: .gitignore - git忽略
git提交会忽略哪些文件
// .gitignore 这里就是举个例子
# dependencies
/node_modules
Part. 6: .babelrc - 编译器
Babel编译器 主要作用是将高级的代码编译成低级的代码,使浏览器都能识别
{
"presets": [
"@vue/app"
]
}
Part. 7: .editorconfig - 统一编码风格
作用: 多人开发时候统一 项目编码风格
- vscode 需要装插件
EditorConfig for VS Code
::: tip 坑中回忆 存盘后git发现所有行都有变化 - 拉下来的老项目 一保存,所有行都变化了,但是代码没有变化
- 最后发现是回车换行的问题
.editorconfigend_of_line = lf 选择行尾序列- 老项目不动代码存盘 文件变动 CRLF 的问题
:::
// .editorconfig
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
Part. 8: .npmrc - 指定npm源
设置项目的npm源,这样就不使用全局的npm源
- 这样可以保证不论那个开发人员在安装的时候都指定项目的源,不受当前npm环境影响
registry=http://192.168.100.100:8081/nexus/content/groups/npm-all/
ELECTRON_MIRROR=https://repo.huaweicloud.com/electron/
Part. 9: .postcssrc.js - css加前缀
兼容各种浏览器css,给css加前缀
- 不用理,都帮你弄好了,vue项目默认创建
// .postcssrc.js
module.exports = {
plugins: {
autoprefixer: {}
}
}
Part. 10: .travis.yml - 自动构建
作用: Travis.yml是持续集成(Travis CI)的配置文件
- 不用理,谁用CI谁再配置
// .travis.yml
language: node_js
node_js: stable
script: npm run lint
notifications:
email: false
Part. 11: alias.config.js - vue别名
vue 配置别名用的
// alias.config.js
function resolve (dir) {
return path.join(__dirname, dir)
}
module.exports = {
resolve: {
alias: {
'@': resolve('src'),
'_c': resolve('src/components')
}
}
}
Part. 12: cypress.json - 测试配置
作用: Cypress是前端测试框架
- 不用理,前端一般没时间写测试用例,没时间test
// cypress.json
{
"pluginsFile": "tests/e2e/plugins/index.js"
}
Part. 13: .favorites.json - 收藏夹配置
作用:vscode文件收藏夹配置文件
- 扩展 Favorites 作者 kdcro101 配置文件自动生成
// .favorites.json
[
{} // 收藏的文件
]
Part. 14: vue.config.js - vue2配置
vue2 项目配置文件,webpack的配置可以写在这里
// vue.config.js
const path = require('path')
const resolve = dir => {
return path.join(__dirname, dir)
}
// 项目部署基础
// 默认情况下,我们假设你的应用将被部署在域的根目录下,
// 例如:https://www.my-app.com/
// 默认:'/'
// 如果您的应用程序部署在子路径中,则需要在这指定子路径
// 例如:https://www.foobar.com/my-app/
// 需要将它改为'/my-app/'
const BASE_URL = process.env.NODE_ENV === 'production'
? 'yourname_web/'
: 'yourname_web/'
const getTimeStamp = () => {
let ret = ''
const date = new Date()
ret += date.getFullYear()
ret += '-' + (date.getMonth() + 1)
ret += '-' + date.getDate()
ret += '_' + date.getHours()
ret += '-' + date.getMinutes()
ret += '-' + date.getSeconds()
return ret
}
module.exports = {
outputDir: 'yourname_web',
// outputDir: `dist/js_${getTimeStamp()}`,
baseUrl: BASE_URL,
configureWebpack: {
output: { // 输出重构 打包编译后的 文件名称 【模块名称.版本号.时间戳】
filename: `js/[name].${getTimeStamp()}.js`,
chunkFilename: `js/[name].${getTimeStamp()}.js`
}
},
// tweak internal webpack configuration.
// see https://github.com/vuejs/vue-cli/blob/dev/docs/webpack.md
// 如果你不需要使用eslint,把lintOnSave设为false即可
lintOnSave: true,
chainWebpack: config => {
// key,value自行定义,比如.set('@@', resolve('src/components'))
config.resolve.alias
.set('@', resolve('src'))
.set('_c', resolve('src/components'))
},
// 设为false打包时不生成.map文件
productionSourceMap: false,
// 这里写你调用接口的基础路径,来解决跨域,如果设置了代理,
// 那你本地开发环境的axios的baseUrl要写为 '' ,即空字符串
devServer: {
sockHost: 'http://localhost:8080/',
disableHostCheck: true
// proxy: 'localhost:3000'
}
}
Proc. 15: 过程回溯
这里粗略的写了下常用配置文件的作用,如果需要深入,可以自行网上查找资料
- 主要目的是在看项目目录的时候,心中对每个文件都清晰明了
- 很多时候,并不太需要深入每个配置文件
[VueJsDev] 快速入门 - vue项目根目录配置文件的更多相关文章
- 快速搭建Vue项目
快速搭建Vue项目 第一次安装vue项目Vue推荐开发环境Node.js 6.2.0.npm 3.8.9.webpack 1.13.vue-cli 2.5.1.webstrom2016 安装环境: 安 ...
- 08Vue.js快速入门-Vue综合实战项目
8.1. 前置知识学习 npm 学习 官方文档 推荐资料 npm入门 npm介绍 需要了解的知识点 package.json 文件相关配置选项 npm 本地安装.全局安装.本地开发安装等区别及相关命令 ...
- 利用vue-cli3快速搭建vue项目详细过程
一.介绍 Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统.有三个组件: CLI:@vue/cli 全局安装的 npm 包,提供了终端里的vue命令(如:vue create .vue ...
- 快速创建 Vue 项目
转载:https://www.jianshu.com/p/c7df292915e7 为了便于 Vue 项目的管理, Vue 团队官方开发了 vue-cli 工具. 本文将带您使用 vue-cli 快速 ...
- 如何快速把 Vue 项目升级到 webpack3
由于 webpack3升级后,新增了 Scope Hositing(作用域提升) 功能,据说是对 js的性能提升很大.因此,我们做了一个测试对比,就是 webpack3和 webpack1/2 的性能 ...
- python 全栈开发,Day88(csrf_exempt,ES6 快速入门,Vue)
BBS项目内容回顾 1. 登陆页面 1. 验证码 1. PIL(Pillow) 2. io 2. ORM 1. 增删改查 3. AJAX $.ajax({ url: '', type: '', dat ...
- 使用nodeJs安装Vue-cli并用它快速构建Vue项目
部分摘自:http://www.cnblogs.com/wisewrong/p/6255817.html(已在本地测试) 前提:nodeJs本地已安装. 一.安装 vue-cli 1.使用nodeJs ...
- vue-cli快速构建Vue项目
vue-cli是什么? vue-cli 是vue.js的脚手架,用于自动生成vue.js模板工程的. vue-cli怎么使用? 安装vue-cli之前,需要先装好vue 和 webpack npm i ...
- vue-cli快速构建vue项目模板
vue-cli 是vue.js的脚手架,用于自动生成vue.js模板工程的. 1.使用npm安装vue-cli 需要先装好vue 和 webpack(前提是已经安装了nodejs,否则连npm都用不了 ...
- 快速创建vue 项目
随着VUE 技术的不断更新,越来越多的开发者开始使用vue编写前端界面,今天我就和大家分享一下 ,如何快速创建一个vue项目. 前提: 安装了node.js 首先: 全局安装vue-cli 使用命令: ...
随机推荐
- element实现大图预览和图片动态加载
element的el-image组件支持大图预览模式,但需要和小图模式配合使用,项目中刚好有需求需要直接使用大图预览并且需要支持图片的动态加载,研究了一下el-image组件的源码发现el-image ...
- centos离线安装mongodb-database-tools
mongodb-database-tools是MongoDB数据库工具的命令行的工具,用于工作与MongoDB部署.可以使用mongodump和mongoimport很方便的导入导出备份数据. 该数据 ...
- 【算法】【回溯】两道经典排列问题OJ详解【力扣46 力扣47】【超详细的回溯算法教程】让我们牢牢把握回溯的精髓
[算法][回溯]两道经典排列问题OJ详解[力扣46 力扣47][超详细的回溯算法教程]让我们牢牢把握回溯的精髓 作者: @小小Programmer 这是我的主页:@小小Programmer 在食用这篇 ...
- CF911G Mass Change Queries 题解
题目链接:CF 或者 洛谷 前置知识点:平衡树合并: CF文章 与维基百科 看上去这题有很多人用线段树分裂与合并去做,其实这种需要分裂和合并的,我们用文艺平衡树去维护区间信息是最容易写的. 考虑本题的 ...
- 【进阶篇】Java 实际开发中积累的几个小技巧(一)
目录 前言 一.枚举类的注解 二.RESTful 接口 三.类属性转换 四.Stream 流 五.判空和断言 5.1判空部分 5.2断言部分 文章小结 前言 笔者目前从事一线 Java 开发今年是第 ...
- 《ASP.ENT Core 与 RESTful API 开发实战》(第3章)-- 读书笔记(下)
第 3 章 ASP.NET Core 核心特性 3.5 配置 要访问配置,需要使用 ConfigurationBinder 类,它实现了 IConfigurationBuilder 接口,该接口包括两 ...
- Linux Shell获取指定日期 N 天/月/年前(后)的日期
我们有时候在写批处理 Shell 脚本时,可能需要获取指定日期前(后) N 天/月/年的日期,这里的 N 可以是 1 天/月/年.2 天/月/年.3 天/月/年等等.方法其实很简单,这里做一个简单记录 ...
- MFC-ODBC API动态连接配置数据库
一.ODBC管理器介绍 在Window中,ODBC数据远管理器有6个标签:用户DSN.系统DSN.文件DSN.驱动程序.跟踪.连接池,通常情况下,使用用户DSN或者系统DSN,这里主要了解用户DSN和 ...
- C# 12 中新增的八大功能你都知道吗?
前言 转眼之间C#都已经更新到了12了,那么C# 12 中新增的八大功能你都了解过吗?今天我们来简单介绍一下C# 12 中新增的八大功能. C#/.NET该如何自学入门?:https://www.cn ...
- NC16466 [NOIP2015]信息传递
题目链接 题目 题目描述 有 n 个同学(编号为 1 到 n)正在玩一个信息传递的游戏.在游戏里每人都有一个固定的信息传递对象,其中,编号为 i 的同学的信息传递对象是编号为Ti的同学. 游戏开始时, ...