vue-cli目录结构


├── node_modules      # 安装的包
├── public	          # 静态资源
│   ├── favicon.ico
│   └── index.html
└── src
    ├── api	          # 请求接口封装模块
    ├── assets	      # 资源目录
    ├── components	  # 组件目录
    ├── router	      # 路由模块
    ├── store	        # Vuex容器模块
    ├── styles        # 样式目录
    ├── utils         # 工具模块目录
    ├── views         # 视图组件目录
        └──home        # 首页模块
        |	    ├── home.vue
        ├─video       # 视频模块
        |	    ├── video.vue
        ├─question    # 问答模块
        |	    ├── question.vue
        ├─search      # 搜索模块
        |	    ├── search.vue
        ├─user        # 用户模块
        |     ├── user.vue
        └─Layout.vue  # 公用布局组件
    ├── App.vue	      # 根组件
    └── main.js	      # 入口文件
├── .browserslistrc   # 浏览器的约定
├── .editorconfig     # 对本项目要用到编辑器的约定
├── .eslintrc.js      # eslint 配置
├── .gitignore        # git的忽略设置,哪些文件不需要git托管
├── babel.config.js	  # babel配置文件
├── package-lock.json	# npm相关文件
├── package.json	    # npm相关文件
└── README.md	        # 项目说明文件

.browserslistrc

> 1%             代表着全球超过1%的人使用浏览器
last 2 versions  表示所有浏览器兼容到最后两个版本
not dead   取反

dead条件:最新的两个版本中发现其市场份额以低于0.5%,并且24个月内没有任务官方支持和更新了。

.editorconfig      编辑器的一些配置(包括编码格式,缩进风格,换行格式)

[*.{js,jsx,ts,tsx,vue}]    匹配给定的任何一个
indent_style = space       设置缩进风格(tab是硬缩进,spcae是软缩进)
indent_size = 2            缩进宽度
trim_trailing_whitespace = true  设置true表示去除换行行首的任意空白字符
insert_final_newline = true      设置true表示使文件以一个空白行结尾
 

.eslintrc.js    对eslint进行配置

module.exports = {
  root: true, // 当前项目使用这个配置文件, 不会往父级目录找.eslintrc.js文件
  env: { // 指定eslint启动环境(vuecli底层是node支持), browser: true也可以在浏览器设置
    node: true
  },
  extends: [ // 扩展配置
    'plugin:vue/essential', // vue里必须的规则
    '@vue/standard' // 使eslint继承@vue/cli脚手架里的 - standard标准
  ],
  parserOptions: { // 对新语法使用eslint
    parser: 'babel-eslint' // 使用babel-eslint 来解析新语法ES6
  },
  // 这里可以进行自定义规则配置
  // key:规则代号
  // value:具体的限定方式
  //   "off" or 0 - 关闭规则
  //   "warn" or 1 - 将规则视为一个警告(不会影响退出码),只警告,不会退出程序
  //   "error" or 2 - 将规则视为一个错误 (退出码为1),报错并退出程序
  rules: { // 自定义规则 - 其实上面集成后有很多内置的规则, 这里可以进行规则的一些修改
    'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off', // 上线环境用打印就报警告, 开发环境关闭此规则
    'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off', // debugger可以终止代码执行
    // 'no-multiple-empty-lines': 'off' // 不允许有连续多行空行(关闭规则)
  }
}

  补充 例如eslint对我们有些规则要求 想要修改规则 则在 rules里添加 

  rules: { // 自定义规则 - 其实上面集成后有很多内置的规则, 这里可以进行规则的一些修改
    // 省略其他
+   'no-multiple-empty-lines': 'off' // 不允许有连续多行空行(关闭规则)
  }

.gitignore   忽略上传哪些文件 

/doc/           #仅仅忽略项目根目录下的 doc文件夹,不包括 xxx/doc/
*.html          #过滤所有.html 文件
/doc/Doxx.txt   #过滤某个具体文件
!doc/           #不过滤该文件夹
!*.html         #不过滤所有.zip文件
!/doc/Doxx.txt  #不过滤该文件
# 在已忽略文件夹中不忽略指定文件
/node_modules/*
!/node_modules/layer/layer.js

babel.config  将高级语法降级

module.exports = {
  presets: [
    '@vue/cli-plugin-babel/preset'
  ]
}

package.json 

package.json 定义了这个项目所需要的各个模块,以及配置信息(名称,版本,许可证等) 

1.name

package.json文件是一个JSON对象,该对象的每一个成员就是当前项目的每一项,name就是项目名称,version是版本(遵守“大版本.次要版本.小版本”的格式)。

{
	"name": "Hello World",
	"version": "0.0.1",
	"author": "张三",
	"description": "第一个node.js程序",
	"keywords":["node.js","javascript"],
	"repository": {
		"type": "git",
		"url": "https://path/to/url"
	},
	"license":"MIT",
	"engines": {"node": "0.10.x"},
	"bugs":{"url":"http://path/to/bug","email":"bug@example.com"},
	"contributors":[{"name":"李四","email":"lisi@example.com"}],
	"scripts": {
		"start": "node index.js"
	},
	"dependencies": {
		"express": "latest",
		"mongoose": "~3.8.3",
		"handlebars-runtime": "~1.0.12",
		"express3-handlebars": "~0.5.0",
		"MD5": "~1.2.0"
	},
	"devDependencies": {
		"bower": "~1.2.8",
		"grunt": "~0.4.1",
		"grunt-contrib-concat": "~0.3.0",
		"grunt-contrib-jshint": "~0.7.2",
		"grunt-contrib-uglify": "~0.2.7",
		"grunt-contrib-clean": "~0.5.0",
		"browserify": "2.36.1",
		"grunt-browserify": "~1.3.0",
	}
}

2.script字段

script 指定了运行脚本命令的npm命令缩写 比如start指定运行npm run star时 所要执行的命令

下面的设置指定了npm run preinstallnpm run postinstallnpm run startnpm run test时,所要执行的命令。

"scripts": {
    "preinstall": "echo here it comes!",
    "postinstall": "echo there it goes!",
    "start": "node index.js",
    "test": "tap test/*.js"
}

 

3.dependencies字段,devDependencies字段

dependencies生产依赖:         dependencies中的依赖项是正常运行该包所需要的依赖项;      (用户上线发布)

devDependencies开发依赖:   devDependencies中的依赖项是开发的时候所需要的依赖项,比如一些进行单元测试之类的 包;  (用于本地开发)

dependencies依赖的包不仅开发环境能使用,生产环境也能使用

{
  "devDependencies": {
    "browserify": "~13.0.0",
    "karma-browserify": "~5.0.1"
  }
}

版本号

指定版本: 1.2.2 遵循大版本 次要版本 小版本的格式 安装时只安装指定版本

波浪号 :   ~1.2.2 表示安装的最新版本不低于1.2.2 但是不按照1.3.x    安装时不大于大版本和次要版本

插入号: 比如~1.2.2 表示安装 1.x.x的最新版本但是不安装2.x.x 也就是安装时不改变大版本号  如果安装时大版本号为0,则插入的行为与波浪号相同

latest安装最新版本。

原文:package.json文件参考教程

 

package-lock.json 

锁定安装时的版本号 保证其他人在使用的时候 依赖同一个版本

生产方式:从使用npm版本为^5.x.x package-lock.json 会默认自动生成 

从npm ^ 5.1.x开始,package.json能够胜过 package-lock.json,所以你遇到较少让人头痛的问题,不再删除 package-lock 只是为了运行npm install并重新生成它

当项目中已有package-lock.json文件,在安装项目依赖时,将以改文件进行解析安装指定版本依赖包,而不是使用package.json来解析个安装模块。因为package-lock为每个模块及其每个依赖项指定了版本,位置和完整性哈希,所以每次创建的安装都是相同的,无论使用什么设备,将来安装都给你相应的结果。

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值