forked from AppStateESS/InternshipInventory
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update to ES2016 syntax. Rename webpack config files for more clarity…
…. Add eslint support to webpack dev config, but now it's exploading. Lots of linting errors to fix.
- Loading branch information
Showing
6 changed files
with
285 additions
and
35 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,3 @@ | ||
{ | ||
"presets" : ["react", "es2015"] | ||
"presets" : ["react", "es2016"] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,211 @@ | ||
/** | ||
* Copyright (c) 2015-present, Facebook, Inc. | ||
* All rights reserved. | ||
* | ||
* This source code is licensed under the BSD-style license found in the | ||
* LICENSE file in the root directory of this source tree. An additional grant | ||
* of patent rights can be found in the PATENTS file in the same directory. | ||
*/ | ||
|
||
// Inspired by https://github.com/airbnb/javascript but less opinionated. | ||
|
||
// We use eslint-loader so even warnings are very visibile. | ||
// This is why we only use "WARNING" level for potential errors, | ||
// and we don't use "ERROR" level at all. | ||
|
||
// In the future, we might create a separate list of rules for production. | ||
// It would probably be more strict. | ||
|
||
module.exports = { | ||
root: true, | ||
|
||
parser: 'babel-eslint', | ||
|
||
// import plugin is temporarily disabled, scroll below to see why | ||
plugins: [/*'import', */'flowtype', 'jsx-a11y', 'react'], | ||
|
||
env: { | ||
browser: true, | ||
commonjs: true, | ||
es6: true, | ||
jest: true, | ||
node: true | ||
}, | ||
|
||
parserOptions: { | ||
ecmaVersion: 6, | ||
sourceType: 'module', | ||
ecmaFeatures: { | ||
jsx: true, | ||
generators: true, | ||
experimentalObjectRestSpread: true | ||
} | ||
}, | ||
|
||
settings: { | ||
'import/ignore': [ | ||
'node_modules', | ||
'\\.(json|css|jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$', | ||
], | ||
'import/extensions': ['.js'], | ||
'import/resolver': { | ||
node: { | ||
extensions: ['.js', '.json'] | ||
} | ||
} | ||
}, | ||
|
||
rules: { | ||
// http://eslint.org/docs/rules/ | ||
'array-callback-return': 'warn', | ||
'default-case': ['warn', { commentPattern: '^no default$' }], | ||
'dot-location': ['warn', 'property'], | ||
eqeqeq: ['warn', 'allow-null'], | ||
'guard-for-in': 'warn', | ||
'new-parens': 'warn', | ||
'no-array-constructor': 'warn', | ||
'no-caller': 'warn', | ||
'no-cond-assign': ['warn', 'always'], | ||
'no-const-assign': 'warn', | ||
'no-control-regex': 'warn', | ||
'no-delete-var': 'warn', | ||
'no-dupe-args': 'warn', | ||
'no-dupe-class-members': 'warn', | ||
'no-dupe-keys': 'warn', | ||
'no-duplicate-case': 'warn', | ||
'no-empty-character-class': 'warn', | ||
'no-empty-pattern': 'warn', | ||
'no-eval': 'warn', | ||
'no-ex-assign': 'warn', | ||
'no-extend-native': 'warn', | ||
'no-extra-bind': 'warn', | ||
'no-extra-label': 'warn', | ||
'no-fallthrough': 'warn', | ||
'no-func-assign': 'warn', | ||
'no-implied-eval': 'warn', | ||
'no-invalid-regexp': 'warn', | ||
'no-iterator': 'warn', | ||
'no-label-var': 'warn', | ||
'no-labels': ['warn', { allowLoop: false, allowSwitch: false }], | ||
'no-lone-blocks': 'warn', | ||
'no-loop-func': 'warn', | ||
'no-mixed-operators': ['warn', { | ||
groups: [ | ||
['&', '|', '^', '~', '<<', '>>', '>>>'], | ||
['==', '!=', '===', '!==', '>', '>=', '<', '<='], | ||
['&&', '||'], | ||
['in', 'instanceof'] | ||
], | ||
allowSamePrecedence: false | ||
}], | ||
'no-multi-str': 'warn', | ||
'no-native-reassign': 'warn', | ||
'no-negated-in-lhs': 'warn', | ||
'no-new-func': 'warn', | ||
'no-new-object': 'warn', | ||
'no-new-symbol': 'warn', | ||
'no-new-wrappers': 'warn', | ||
'no-obj-calls': 'warn', | ||
'no-octal': 'warn', | ||
'no-octal-escape': 'warn', | ||
'no-redeclare': 'warn', | ||
'no-regex-spaces': 'warn', | ||
'no-restricted-syntax': [ | ||
'warn', | ||
'LabeledStatement', | ||
'WithStatement', | ||
], | ||
'no-script-url': 'warn', | ||
'no-self-assign': 'warn', | ||
'no-self-compare': 'warn', | ||
'no-sequences': 'warn', | ||
'no-shadow-restricted-names': 'warn', | ||
'no-sparse-arrays': 'warn', | ||
'no-template-curly-in-string': 'warn', | ||
'no-this-before-super': 'warn', | ||
'no-throw-literal': 'warn', | ||
'no-undef': 'error', | ||
'no-unexpected-multiline': 'warn', | ||
'no-unreachable': 'warn', | ||
'no-unused-expressions': 'warn', | ||
'no-unused-labels': 'warn', | ||
'no-unused-vars': ['warn', { | ||
vars: 'local', | ||
varsIgnorePattern: '^_', | ||
args: 'none' | ||
}], | ||
'no-use-before-define': ['warn', 'nofunc'], | ||
'no-useless-computed-key': 'warn', | ||
'no-useless-concat': 'warn', | ||
'no-useless-constructor': 'warn', | ||
'no-useless-escape': 'warn', | ||
'no-useless-rename': ['warn', { | ||
ignoreDestructuring: false, | ||
ignoreImport: false, | ||
ignoreExport: false, | ||
}], | ||
'no-with': 'warn', | ||
'no-whitespace-before-property': 'warn', | ||
'operator-assignment': ['warn', 'always'], | ||
radix: 'warn', | ||
'require-yield': 'warn', | ||
'rest-spread-spacing': ['warn', 'never'], | ||
strict: ['warn', 'never'], | ||
'unicode-bom': ['warn', 'never'], | ||
'use-isnan': 'warn', | ||
'valid-typeof': 'warn', | ||
|
||
// https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/ | ||
|
||
// TODO: import rules are temporarily disabled because they don't play well | ||
// with how eslint-loader only checks the file you change. So if module A | ||
// imports module B, and B is missing a default export, the linter will | ||
// record this as an issue in module A. Now if you fix module B, the linter | ||
// will not be aware that it needs to re-lint A as well, so the error | ||
// will stay until the next restart, which is really confusing. | ||
|
||
// This is probably fixable with a patch to eslint-loader. | ||
// When file A is saved, we want to invalidate all files that import it | ||
// *and* that currently have lint errors. This should fix the problem. | ||
|
||
// 'import/default': 'warn', | ||
// 'import/export': 'warn', | ||
// 'import/named': 'warn', | ||
// 'import/namespace': 'warn', | ||
// 'import/no-amd': 'warn', | ||
// 'import/no-duplicates': 'warn', | ||
// 'import/no-extraneous-dependencies': 'warn', | ||
// 'import/no-named-as-default': 'warn', | ||
// 'import/no-named-as-default-member': 'warn', | ||
// 'import/no-unresolved': ['warn', { commonjs: true }], | ||
|
||
// https://github.com/yannickcr/eslint-plugin-react/tree/master/docs/rules | ||
'react/jsx-equals-spacing': ['warn', 'never'], | ||
'react/jsx-no-duplicate-props': ['warn', { ignoreCase: true }], | ||
'react/jsx-no-undef': 'warn', | ||
'react/jsx-pascal-case': ['warn', { | ||
allowAllCaps: true, | ||
ignore: [], | ||
}], | ||
'react/jsx-uses-react': 'warn', | ||
'react/jsx-uses-vars': 'warn', | ||
'react/no-danger-with-children': 'warn', | ||
'react/no-deprecated': 'warn', | ||
'react/no-direct-mutation-state': 'warn', | ||
'react/no-is-mounted': 'warn', | ||
'react/react-in-jsx-scope': 'warn', | ||
'react/require-render-return': 'warn', | ||
'react/style-prop-object': 'warn', | ||
|
||
// https://github.com/evcohen/eslint-plugin-jsx-a11y/tree/master/docs/rules | ||
'jsx-a11y/aria-role': 'warn', | ||
'jsx-a11y/img-has-alt': 'warn', | ||
'jsx-a11y/img-redundant-alt': 'warn', | ||
'jsx-a11y/no-access-key': 'warn', | ||
|
||
// https://github.com/gajus/eslint-plugin-flowtype | ||
'flowtype/define-flow-type': 'warn', | ||
'flowtype/require-valid-file-annotation': 'warn', | ||
'flowtype/use-flow-type': 'warn' | ||
} | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
var webpack = require('webpack'); | ||
var path = require('path'); | ||
var Promise = require('es6-promise').polyfill(); | ||
|
||
var APP_DIR = path.resolve(__dirname, ''); | ||
var JS_DIR = path.resolve(__dirname, 'javascript'); | ||
|
||
module.exports = { | ||
devtool: 'eval', | ||
entry: { | ||
createInterface: JS_DIR + '/createInterface/CreateInternshipInterface.jsx', | ||
searchInterface: JS_DIR + '/searchInterface/search.jsx', | ||
editAdmin: JS_DIR + '/editAdmin/editAdmin.jsx' | ||
}, | ||
output: { | ||
path: path.join(JS_DIR, "dist"), | ||
filename: "[name].dev.js" | ||
}, | ||
module: { | ||
loaders: [ | ||
{ | ||
enforce: "pre", | ||
test: /\.(js|jsx)$/, | ||
loader: "eslint", | ||
include: JS_DIR | ||
}, { | ||
test: /\.(js|jsx)$/, | ||
include: JS_DIR, | ||
loader: 'babel' | ||
}, { | ||
test: /\.css$/, | ||
loader: "style-loader!css-loader" | ||
}] | ||
}, | ||
eslint: { | ||
configFile: path.join(__dirname, '.eslintrc.js'), | ||
useEslintrc: false | ||
}, | ||
devtool: 'source-map' | ||
} |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters