工程化

使用 ESLint + Prettier 统一代码风格

使用 ESLint + Prettier 统一代码风格

参考资料:https://juejin.im/post/5b27a326e51d45588a7dac57

webpack require.context()

你还可以通过 require.context() 函数来创建自己的 context。

可以给这个函数传入三个参数:一个要搜索的目录,一个标记表示是否还搜索其子目录, 以及一个匹配文件的正则表达式。

require.context(directory, useSubdirectories = false, regExp = /^\.\//);

demo

require.context('./test', false, /\.test\.js$/);
// (创建出)一个 context,其中文件来自 test 目录,request 以 `.test.js` 结尾。
require.context('../', true, /\.stories\.js$/);
// (创建出)一个 context,其中所有文件都来自父文件夹及其所有子级文件夹,request 以 `.stories.js` 结尾。

Vue 全局组件

首字母大写

利用require.context遍历目录所有图片

加载所有的图片

Webpack sourceMap 的作用

读懂eslint配置文件

// .eslintrc.js

module.exports = {
  root: true, // 告诉 eslint 找当前配置文件不能往父级找
  env: {
    node: true // 指定环境的全局变量,下面的配置指定 node 环境
  },
  extends: ['plugin:vue/essential', '@vue/airbnb'], // 扩展插件:配置风格
  rules: { // 核心的语法规则 0-off关闭规则、1-warn作为警告、2-error作为错误
    'no-console': 0,
    'no-debugger': 0,
    // 在这里自定义修改
    'linebreak-style': 0,
    semi: [2, 'never'], // 不加分号
    'no-unused-expressions': [2, {
      allowShortCircuit: true,
      allowTernary: true
    }], // 允许三元
    'no-plusplus': 0, // 开启i++
    'comma-dangle': [2, 'never'], // 结尾不使用逗号
    'import/no-unresolved': [2, {
      ignore: ['esri', 'dojo']
    }], // 解决import esri/xxx编译不通过
    'import/extensions': 0,
    // 'no-console': 0,
    'arrow-parens': [2, 'as-needed'], // 箭头函数参数只有一个时无需加括号
    'no-param-reassign': [2, {
      props: false
    }],
    'no-mixed-operators': 0,
    // 'max-len': [2, {"code": 120} ],
    'vue/no-parsing-error': [2, {
      'x-invalid-end-tag': false
    }]
  },
  parserOptions: {
    parser: 'babel-eslint' // 指定 eslint 的解析器,解析器必须符合规则, babel-eslint 解析器是对 babel 解析器的包装,使其与 eslint 解析
  }
}
Last Updated: 2/25/2020, 10:05:56 AM