• 使用标准的 ES6 模块语法 importexport

      原因:模块是未来,让我们现在开始使用未来的特性

      // bad
      const util = require('./util')
      module.exports = util
      
      // good
      import Util from './util'
      export default Util
      
      // better
      import { Util } from './util'
      export default Util
    • 不要使用 import 的通配符 *,这样可以确保你只有一个默认的 export

      // bad
      import * as Util from './util'
      
      // good
      import Util from './util'
    • 同个文件每个模块只允许 import 一次,有多个 import 请书写在一起,eslint: no-duplicate-imports

      原因:这样可以让代码更易于维护

      // bad
      import foo from 'foo'
      // … some other imports … //
      import { named1, named2 } from 'foo'
      
      // good
      import foo, { named1, named2 } from 'foo'
      
      // good
      import foo, {
        named1,
        named2
      } from 'foo'
    • 将所有 import 语句放在文件最前方,eslint: import/imports-first

      // bad
      import foo from 'foo'
      foo.init()
      
      import bar from 'bar'
      
      // good
      import foo from 'foo'
      import bar from 'bar'
      
      foo.init()
    • 多行导入应该像多行数组和对象文字一样缩进

      // bad
      import { longNameA, longNameB, longNameC, longNameD, longNameE } from 'path'
      
      // good
      import {
        longNameA,
        longNameB,
        longNameC,
        longNameD,
        longNameE
      } from 'path'
    • 在模块 import 声明中禁止使用 Webpackloader 语法,eslint: import/no-webpack-loader-syntax

      // bad
      import fooSass from 'css!sass!foo.scss'
      import barCss from 'style!css!bar.css'
      
      // good
      import fooSass from 'foo.scss'
      import barCss from 'bar.css'
    文档更新时间: 2021-05-11 16:00   作者:姚连洲