diff --git a/.eslintrc b/.eslintrc index 21bff657d..946236e21 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,6 +1,7 @@ { "extends": ["plugin:vue-libs/recommended"], "rules": { - "indent": ["error", 2, { "MemberExpression": "off" }] + "indent": ["error", 2, { "MemberExpression": "off" }], + "vue-libs/no-async-functions": 2 } } diff --git a/package.json b/package.json index 436bc4c42..168ef3a9a 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "devDependencies": { "debug": "^3.1.0", "eslint": "^4.14.0", - "eslint-plugin-vue-libs": "^2.0.1", + "eslint-plugin-vue-libs": "^2.1.0", "globby": "^7.1.1", "husky": "^0.14.3", "jest": "^22.0.4", diff --git a/packages/@vue/cli-service/bin/vue-cli-service b/packages/@vue/cli-service/bin/vue-cli-service index 25460442f..7a9b8d1e4 100755 --- a/packages/@vue/cli-service/bin/vue-cli-service +++ b/packages/@vue/cli-service/bin/vue-cli-service @@ -1,5 +1,16 @@ #!/usr/bin/env node +const semver = require('semver') +const { error } = require('@vue/cli-shared-utils') + +if (!semver.satisfies(process.version, '>=6.0.0')) { + error( + `You are using Node ${process.version}, ` + + `but vue-cli-service requires a minimum version of Node 6.0.0. ` + ) + process.exit(1) +} + const Service = require('../lib/Service') const service = new Service() diff --git a/packages/@vue/cli-service/package.json b/packages/@vue/cli-service/package.json index 9af42dc6d..a0549fe2c 100644 --- a/packages/@vue/cli-service/package.json +++ b/packages/@vue/cli-service/package.json @@ -39,6 +39,7 @@ "ora": "^1.3.0", "portfinder": "^1.0.13", "read-pkg-up": "^3.0.0", + "semver": "^5.4.1", "string.prototype.padend": "^3.0.0", "uglifyjs-webpack-plugin": "^1.1.4", "url-loader": "^0.6.2", diff --git a/packages/@vue/cli/.eslintrc b/packages/@vue/cli/.eslintrc new file mode 100644 index 000000000..92b6bda70 --- /dev/null +++ b/packages/@vue/cli/.eslintrc @@ -0,0 +1,5 @@ +{ + "rules": { + "vue-libs/no-async-functions": 0 + } +} diff --git a/packages/@vue/cli/bin/vue-create b/packages/@vue/cli/bin/vue-create index 6efe831d0..6c0f0e853 100755 --- a/packages/@vue/cli/bin/vue-create +++ b/packages/@vue/cli/bin/vue-create @@ -1,3 +1,15 @@ #!/usr/bin/env node -require('../lib/create') +const semver = require('semver') +const { error } = require('@vue/cli-shared-utils') + +if (!semver.satisfies(process.version, '>=7.7.0')) { + error( + `You are using Node ${process.version}, ` + + `but this version of vue-cli requires a minimum version of Node 7.7.0, ` + + `and Node 8+ is recommended.\n` + ) + process.exit(1) +} else { + require('../lib/create') +} diff --git a/packages/@vue/cli/lib/Creator.js b/packages/@vue/cli/lib/Creator.js index a179e3453..eddecf121 100644 --- a/packages/@vue/cli/lib/Creator.js +++ b/packages/@vue/cli/lib/Creator.js @@ -202,8 +202,8 @@ module.exports = class Creator { `~/.vuerc may be corrupted or have syntax errors. ` + `You may need to delete it and re-run vue-cli in manual mode.\n` + `(${e.message})`, - true ) + process.exit(1) } } diff --git a/packages/@vue/cli/package.json b/packages/@vue/cli/package.json index 98a05c019..a10e76fd1 100644 --- a/packages/@vue/cli/package.json +++ b/packages/@vue/cli/package.json @@ -7,6 +7,10 @@ "vue-create": "bin/vue-create", "vue-init": "bin/vue-init" }, + "files": [ + "bin", + "lib" + ], "repository": { "type": "git", "url": "git+https://github.com/vuejs/vue-cli.git" diff --git a/yarn.lock b/yarn.lock index 15b789024..08033051f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2367,9 +2367,9 @@ eslint-plugin-html@^4.0.1: dependencies: htmlparser2 "^3.8.2" -eslint-plugin-vue-libs@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-vue-libs/-/eslint-plugin-vue-libs-2.0.1.tgz#d6306f5615127a3250118c3cefbd9603ecb278ae" +eslint-plugin-vue-libs@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-vue-libs/-/eslint-plugin-vue-libs-2.1.0.tgz#e7faf4ae11dad58553f63f907d6642e2d816dcef" dependencies: eslint-plugin-html "^4.0.1"