e783b0a2e8
This PR re-includes ESLint with some notable changes, namely a guided setup similar to how TypeScript is instantiated in a Next.js application. To add ESLint to a project, developers will have to create an `.eslintrc` file in the root of their project or add an empty `eslintConfig` object to their `package.json` file. ```js touch .eslintrc ``` Then running `next build` will show instructions to install the required packages needed: <img width="862" alt="Screen Shot 2021-04-19 at 7 38 27 PM" src="https://user-images.githubusercontent.com/12476932/115316182-dfd51b00-a146-11eb-830c-90bad20ed151.png"> Once installed and `next build` is run again, `.eslintrc` will be automatically configured to include the default config: ```json { "extends": "next" } ``` In addition to this change: - The feature is now under the experimental flag and requires opt-in. After testing and feedback, it will be switched to the top-level namespace and turned on by default. - A new ESLint shareable configuration package is included that can be extended in any application with `{ extends: 'next' }` - This default config extends recommended rule sets from [`eslint-plugin-react`](https://www.npmjs.com/package/eslint-plugin-react), [`eslint-plugin-react-hooks`](https://www.npmjs.com/package/eslint-plugin-react-hooks), and [`eslint-plugin-next`](https://www.npmjs.com/package/@next/eslint-plugin-next) - All rules in [`eslint-plugin-next`](https://www.npmjs.com/package/@next/eslint-plugin-next) have been modified to include actionable links that show more information to help resolve each issue
43 lines
811 B
Bash
Executable file
43 lines
811 B
Bash
Executable file
declare -a testCases=(
|
|
# Tests the webpack require hook
|
|
"progressive-web-app"
|
|
"with-eslint"
|
|
"with-typescript"
|
|
"with-next-sass"
|
|
# Tests @next/mdx
|
|
"with-mdx"
|
|
# Tests babel config
|
|
"with-styled-components"
|
|
)
|
|
|
|
set -e
|
|
set -x
|
|
|
|
# Speeds up testing locally
|
|
export CI=1
|
|
|
|
rm -rf ./e2e-tests
|
|
|
|
initialDir=$(pwd)
|
|
|
|
for testCase in "${testCases[@]}"
|
|
do
|
|
cd $initialDir
|
|
|
|
echo "--- Testing $testCase ---"
|
|
mkdir -p "./e2e-tests/$testCase"
|
|
cp -r "./examples/$testCase/." "./e2e-tests/$testCase"
|
|
cd "./e2e-tests/$testCase"
|
|
|
|
touch yarn.lock
|
|
yarn set version berry
|
|
|
|
# Temporary fix for https://github.com/yarnpkg/berry/issues/2514:
|
|
yarn set version from sources
|
|
|
|
yarn config set pnpFallbackMode none
|
|
yarn config set enableGlobalCache true
|
|
yarn link --all --private -r ../..
|
|
|
|
yarn build
|
|
done
|