From 90ffbb789a5f8f6f964afd94256c7c931f152b26 Mon Sep 17 00:00:00 2001 From: Vinayak Kulkarni Date: Wed, 31 Mar 2021 00:42:59 +0530 Subject: [PATCH 1/6] chore: remove husky from `package.json` --- packages/cna-template/template/nuxt/package.json | 6 ------ 1 file changed, 6 deletions(-) diff --git a/packages/cna-template/template/nuxt/package.json b/packages/cna-template/template/nuxt/package.json index 244d85c63..15643f236 100644 --- a/packages/cna-template/template/nuxt/package.json +++ b/packages/cna-template/template/nuxt/package.json @@ -11,12 +11,6 @@ "*.{js,vue}": "eslint", "*.{css,vue}": "stylelint" }, - "husky": { - "hooks": { - "commit-msg": "commitlint -E HUSKY_GIT_PARAMS", - "pre-commit": "lint-staged" - } - }, "dependencies": { "@nuxt/content": "^1.14.0", "@nuxtjs/axios": "^5.13.1", From 22882af5773d83fe221006aa83aa2d06fe51c5f5 Mon Sep 17 00:00:00 2001 From: Vinayak Kulkarni Date: Wed, 31 Mar 2021 00:43:14 +0530 Subject: [PATCH 2/6] =?UTF-8?q?feat(deps):=20bump=20husky=20to=20v6=20?= =?UTF-8?q?=F0=9F=A5=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/cna-template/template/nuxt/package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/cna-template/template/nuxt/package.json b/packages/cna-template/template/nuxt/package.json index 15643f236..8506caace 100644 --- a/packages/cna-template/template/nuxt/package.json +++ b/packages/cna-template/template/nuxt/package.json @@ -5,7 +5,8 @@ "start": "nuxt start", "generate": "nuxt generate", "lint:js": "eslint --ext \".js,.vue\" --ignore-path .gitignore .", - "lint:style": "stylelint \"**/*.{vue,css}\" --ignore-path .gitignore" + "lint:style": "stylelint \"**/*.{vue,css}\" --ignore-path .gitignore", + "prepare": "husky install" }, "lint-staged": { "*.{js,vue}": "eslint", @@ -33,7 +34,7 @@ "eslint-plugin-nuxt": "^2.0.0", "eslint-plugin-prettier": "^3.3.1", "eslint-plugin-vue": "^7.7.0", - "husky": "^4.3.8", + "husky": "^6.0.0", "lint-staged": "^10.5.4", "prettier": "^2.2.1", "stylelint": "^13.12.0", From bf963e1df2e2f343dd92ec90bec1df94a0257d73 Mon Sep 17 00:00:00 2001 From: Vinayak Kulkarni Date: Wed, 31 Mar 2021 00:43:27 +0530 Subject: [PATCH 3/6] feat: husky v6 files --- .../cna-template/template/frameworks/husky/.husky/.gitignore | 1 + .../cna-template/template/frameworks/husky/.husky/commit-msg | 4 ++++ .../cna-template/template/frameworks/husky/.husky/pre-commit | 5 +++++ .../cna-template/template/frameworks/husky/.husky/pre-push | 5 +++++ 4 files changed, 15 insertions(+) create mode 100644 packages/cna-template/template/frameworks/husky/.husky/.gitignore create mode 100644 packages/cna-template/template/frameworks/husky/.husky/commit-msg create mode 100644 packages/cna-template/template/frameworks/husky/.husky/pre-commit create mode 100644 packages/cna-template/template/frameworks/husky/.husky/pre-push diff --git a/packages/cna-template/template/frameworks/husky/.husky/.gitignore b/packages/cna-template/template/frameworks/husky/.husky/.gitignore new file mode 100644 index 000000000..31354ec13 --- /dev/null +++ b/packages/cna-template/template/frameworks/husky/.husky/.gitignore @@ -0,0 +1 @@ +_ diff --git a/packages/cna-template/template/frameworks/husky/.husky/commit-msg b/packages/cna-template/template/frameworks/husky/.husky/commit-msg new file mode 100644 index 000000000..e8511eaea --- /dev/null +++ b/packages/cna-template/template/frameworks/husky/.husky/commit-msg @@ -0,0 +1,4 @@ +#!/bin/sh +. "$(dirname "$0")/_/husky.sh" + +npx --no-install commitlint --edit $1 diff --git a/packages/cna-template/template/frameworks/husky/.husky/pre-commit b/packages/cna-template/template/frameworks/husky/.husky/pre-commit new file mode 100644 index 000000000..9fba76faa --- /dev/null +++ b/packages/cna-template/template/frameworks/husky/.husky/pre-commit @@ -0,0 +1,5 @@ +#!/bin/sh +. "$(dirname "$0")/_/husky.sh" + +npm run lint:js +npm run lint:style diff --git a/packages/cna-template/template/frameworks/husky/.husky/pre-push b/packages/cna-template/template/frameworks/husky/.husky/pre-push new file mode 100644 index 000000000..9fba76faa --- /dev/null +++ b/packages/cna-template/template/frameworks/husky/.husky/pre-push @@ -0,0 +1,5 @@ +#!/bin/sh +. "$(dirname "$0")/_/husky.sh" + +npm run lint:js +npm run lint:style From 09a7b31c953f4e4519b13969ffb9fe4d8a598f47 Mon Sep 17 00:00:00 2001 From: Vinayak Kulkarni Date: Wed, 31 Mar 2021 00:43:45 +0530 Subject: [PATCH 4/6] chore: update template to support husky --- packages/cna-template/template/nuxt/package.js | 13 +++++++++---- packages/create-nuxt-app/lib/prompts.js | 3 ++- packages/create-nuxt-app/lib/saofile.js | 13 +++++++++++++ 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/packages/cna-template/template/nuxt/package.js b/packages/cna-template/template/nuxt/package.js index f4e3756cd..cfbc8883f 100644 --- a/packages/cna-template/template/nuxt/package.js +++ b/packages/cna-template/template/nuxt/package.js @@ -8,7 +8,7 @@ module.exports = { pkg.dependencies['nuxt-edge'] = 'latest' } - const { features, language = [], linter = [] } = generator.answers + const { features, language = [], linter = [], devTools = [] } = generator.answers // Linter const eslint = linter.includes('eslint') @@ -32,9 +32,7 @@ module.exports = { delete pkg.devDependencies['eslint-plugin-vue'] } if (!lintStaged) { - delete pkg.husky delete pkg['lint-staged'] - delete pkg.devDependencies.husky delete pkg.devDependencies['lint-staged'] } if (!stylelint) { @@ -53,7 +51,6 @@ module.exports = { delete pkg.devDependencies.prettier } if (!commitlint) { - lintStaged && delete pkg.husky.hooks['commit-msg'] delete pkg.devDependencies['@commitlint/config-conventional'] delete pkg.devDependencies['@commitlint/cli'] } @@ -63,6 +60,14 @@ module.exports = { pkg.scripts.lint = lintScript } + // Dev Tools + const husky = devTools.includes('husky') + + if (!husky) { + delete pkg.devDependencies.husky + delete pkg.scripts.prepare + } + // Modules if (!features.includes('axios')) { delete pkg.dependencies['@nuxtjs/axios'] diff --git a/packages/create-nuxt-app/lib/prompts.js b/packages/create-nuxt-app/lib/prompts.js index 59eda0f57..7ea053d12 100644 --- a/packages/create-nuxt-app/lib/prompts.js +++ b/packages/create-nuxt-app/lib/prompts.js @@ -115,7 +115,8 @@ module.exports = [ choices: [ { name: 'jsconfig.json (Recommended for VS Code if you\'re not using typescript)', value: 'jsconfig.json' }, { name: 'Semantic Pull Requests', value: 'semantic-pull-requests' }, - { name: 'Dependabot (For auto-updating dependencies, GitHub only)', value: 'dependabot' } + { name: 'Dependabot (For auto-updating dependencies, GitHub only)', value: 'dependabot' }, + { name: 'Git Hooks (via husky)', value: 'husky' } ], default: [] }, diff --git a/packages/create-nuxt-app/lib/saofile.js b/packages/create-nuxt-app/lib/saofile.js index 1b371f05d..71c83168d 100644 --- a/packages/create-nuxt-app/lib/saofile.js +++ b/packages/create-nuxt-app/lib/saofile.js @@ -17,6 +17,7 @@ module.exports = { const lintStaged = eslint && this.answers.linter.includes('lintStaged') const stylelint = this.answers.linter.includes('stylelint') const commitlint = this.answers.linter.includes('commitlint') + const husky = this.answers.devTools.includes('husky') const axios = this.answers.features.includes('axios') const content = this.answers.features.includes('content') const pm = this.answers.pm === 'yarn' ? 'yarn' : 'npm' @@ -33,6 +34,7 @@ module.exports = { lintStaged, stylelint, commitlint, + husky, axios, edge, pm, @@ -85,6 +87,17 @@ module.exports = { }) } + if (this.answers.devTools && this.answers.devTools !== 'none') { + this.answers.devTools.forEach((tool) => { + console.log('frameworksDir: ', frameworksDir) + actions.push({ + type: 'add', + files: '**', + templateDir: join(frameworksDir, tool) + }) + }) + } + actions.push({ type: 'add', files: '*', From 57a3fa3668816249dc74aea36e08a1e1a27ac1c0 Mon Sep 17 00:00:00 2001 From: Vinayak Kulkarni Date: Wed, 31 Mar 2021 00:44:10 +0530 Subject: [PATCH 5/6] test: update snapshots --- .../test/snapshots/index.test.js.md | 112 ++++++++++++++++-- .../test/snapshots/index.test.js.snap | Bin 8754 -> 8731 bytes 2 files changed, 103 insertions(+), 9 deletions(-) diff --git a/packages/create-nuxt-app/test/snapshots/index.test.js.md b/packages/create-nuxt-app/test/snapshots/index.test.js.md index fbf9eb532..541ebedb6 100644 --- a/packages/create-nuxt-app/test/snapshots/index.test.js.md +++ b/packages/create-nuxt-app/test/snapshots/index.test.js.md @@ -515,6 +515,99 @@ Generated by [AVA](https://avajs.dev). }␊ ` +## verify devTools: Git Hooks (via husky) + +> Generated files + + [ + '.editorconfig', + '.gitignore', + '.husky/.gitignore', + '.husky/_/husky.sh', + '.husky/commit-msg', + '.husky/pre-commit', + '.husky/pre-push', + 'README.md', + 'assets/README.md', + 'components/Logo.vue', + 'components/README.md', + 'layouts/README.md', + 'layouts/default.vue', + 'middleware/README.md', + 'nuxt.config.js', + 'package.json', + 'pages/README.md', + 'pages/index.vue', + 'plugins/README.md', + 'static/README.md', + 'static/favicon.ico', + 'store/README.md', + ] + +> package.json + + { + dependencies: { + 'core-js': '^3.9.1', + nuxt: '^2.15.3', + }, + devDependencies: { + husky: '^6.0.0', + }, + private: true, + scripts: { + build: 'nuxt build', + dev: 'nuxt', + generate: 'nuxt generate', + prepare: 'husky install', + start: 'nuxt start', + }, + } + +> Generated nuxt.config.js + + `export default {␊ + // Global page headers: https://go.nuxtjs.dev/config-head␊ + head: {␊ + title: 'output',␊ + htmlAttrs: {␊ + lang: 'en'␊ + },␊ + meta: [␊ + { charset: 'utf-8' },␊ + { name: 'viewport', content: 'width=device-width, initial-scale=1' },␊ + { hid: 'description', name: 'description', content: '' }␊ + ],␊ + link: [␊ + { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }␊ + ]␊ + },␊ + ␊ + // Global CSS: https://go.nuxtjs.dev/config-css␊ + css: [␊ + ],␊ + ␊ + // Plugins to run before rendering page: https://go.nuxtjs.dev/config-plugins␊ + plugins: [␊ + ],␊ + ␊ + // Auto import components: https://go.nuxtjs.dev/config-components␊ + components: true,␊ + ␊ + // Modules for dev and build (recommended): https://go.nuxtjs.dev/config-modules␊ + buildModules: [␊ + ],␊ + ␊ + // Modules: https://go.nuxtjs.dev/config-modules␊ + modules: [␊ + ],␊ + ␊ + // Build Configuration: https://go.nuxtjs.dev/config-build␊ + build: {␊ + }␊ + }␊ + ` + ## verify devTools: Semantic Pull Requests > Generated files @@ -687,7 +780,7 @@ Generated by [AVA](https://avajs.dev). }␊ ` -## verify devTools: jsconfig.json (Recommended for VS Code if you're not using typescript), Semantic Pull Requests, Dependabot (For auto-updating dependencies, GitHub only) +## verify devTools: jsconfig.json (Recommended for VS Code if you're not using typescript), Semantic Pull Requests, Dependabot (For auto-updating dependencies, GitHub only), Git Hooks (via husky) > Generated files @@ -696,6 +789,11 @@ Generated by [AVA](https://avajs.dev). '.github/dependabot.yml', '.github/semantic.yml', '.gitignore', + '.husky/.gitignore', + '.husky/_/husky.sh', + '.husky/commit-msg', + '.husky/pre-commit', + '.husky/pre-push', 'README.md', 'assets/README.md', 'components/Logo.vue', @@ -721,12 +819,15 @@ Generated by [AVA](https://avajs.dev). 'core-js': '^3.9.1', nuxt: '^2.15.3', }, - devDependencies: {}, + devDependencies: { + husky: '^6.0.0', + }, private: true, scripts: { build: 'nuxt build', dev: 'nuxt', generate: 'nuxt generate', + prepare: 'husky install', start: 'nuxt start', }, } @@ -1566,19 +1667,12 @@ Generated by [AVA](https://avajs.dev). 'eslint-plugin-nuxt': '^2.0.0', 'eslint-plugin-prettier': '^3.3.1', 'eslint-plugin-vue': '^7.7.0', - husky: '^4.3.8', 'lint-staged': '^10.5.4', prettier: '^2.2.1', stylelint: '^13.12.0', 'stylelint-config-prettier': '^8.0.2', 'stylelint-config-standard': '^21.0.0', }, - husky: { - hooks: { - 'commit-msg': 'commitlint -E HUSKY_GIT_PARAMS', - 'pre-commit': 'lint-staged', - }, - }, 'lint-staged': { '*.{css,vue}': 'stylelint', '*.{js,vue}': 'eslint', diff --git a/packages/create-nuxt-app/test/snapshots/index.test.js.snap b/packages/create-nuxt-app/test/snapshots/index.test.js.snap index 7adb4e94fa78230774290d512aae1418d3139166..45bf9ad96699249d6723ea64f3587abde35847d5 100644 GIT binary patch literal 8731 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 Date: Wed, 31 Mar 2021 02:00:36 +0530 Subject: [PATCH 6/6] chore: use pmRun instead of `npm` & remove `console.log()` --- .../frameworks/husky/.husky/commit-msg | 2 +- .../frameworks/husky/.husky/pre-commit | 4 ++-- .../template/frameworks/husky/.husky/pre-push | 4 ++-- packages/create-nuxt-app/lib/saofile.js | 1 - .../test/snapshots/index.test.js.snap | Bin 8731 -> 8769 bytes 5 files changed, 5 insertions(+), 6 deletions(-) diff --git a/packages/cna-template/template/frameworks/husky/.husky/commit-msg b/packages/cna-template/template/frameworks/husky/.husky/commit-msg index e8511eaea..3172f280a 100644 --- a/packages/cna-template/template/frameworks/husky/.husky/commit-msg +++ b/packages/cna-template/template/frameworks/husky/.husky/commit-msg @@ -1,4 +1,4 @@ #!/bin/sh . "$(dirname "$0")/_/husky.sh" -npx --no-install commitlint --edit $1 +<%= pmRun %> commitlint --edit $1 diff --git a/packages/cna-template/template/frameworks/husky/.husky/pre-commit b/packages/cna-template/template/frameworks/husky/.husky/pre-commit index 9fba76faa..66a1e32f1 100644 --- a/packages/cna-template/template/frameworks/husky/.husky/pre-commit +++ b/packages/cna-template/template/frameworks/husky/.husky/pre-commit @@ -1,5 +1,5 @@ #!/bin/sh . "$(dirname "$0")/_/husky.sh" -npm run lint:js -npm run lint:style +<%= pmRun %> lint:js +<%= pmRun %> lint:style diff --git a/packages/cna-template/template/frameworks/husky/.husky/pre-push b/packages/cna-template/template/frameworks/husky/.husky/pre-push index 9fba76faa..66a1e32f1 100644 --- a/packages/cna-template/template/frameworks/husky/.husky/pre-push +++ b/packages/cna-template/template/frameworks/husky/.husky/pre-push @@ -1,5 +1,5 @@ #!/bin/sh . "$(dirname "$0")/_/husky.sh" -npm run lint:js -npm run lint:style +<%= pmRun %> lint:js +<%= pmRun %> lint:style diff --git a/packages/create-nuxt-app/lib/saofile.js b/packages/create-nuxt-app/lib/saofile.js index 71c83168d..cc130ffe3 100644 --- a/packages/create-nuxt-app/lib/saofile.js +++ b/packages/create-nuxt-app/lib/saofile.js @@ -89,7 +89,6 @@ module.exports = { if (this.answers.devTools && this.answers.devTools !== 'none') { this.answers.devTools.forEach((tool) => { - console.log('frameworksDir: ', frameworksDir) actions.push({ type: 'add', files: '**', diff --git a/packages/create-nuxt-app/test/snapshots/index.test.js.snap b/packages/create-nuxt-app/test/snapshots/index.test.js.snap index 45bf9ad96699249d6723ea64f3587abde35847d5..ecd374552b96ef873fc2368b2001e867694aa33b 100644 GIT binary patch literal 8769 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