chore: merge dev

This commit is contained in:
Guillaume Chau
2018-03-07 14:23:47 +01:00
37 changed files with 306 additions and 207 deletions
+56
View File
@@ -1,3 +1,59 @@
<a name="3.0.0-beta.6"></a>
# [3.0.0-beta.6](https://github.com/vuejs/vue-cli/compare/v3.0.0-beta.5...v3.0.0-beta.6) (2018-03-06)
### Bug Fixes
* do not exit with 1 on lint warnings (fix [#872](https://github.com/vuejs/vue-cli/issues/872)) ([b162cab](https://github.com/vuejs/vue-cli/commit/b162cab))
* fix [@vue](https://github.com/vue)/cli-service initial version ([08add21](https://github.com/vuejs/vue-cli/commit/08add21))
* fix babel preset jsx dependency ([2eb1ef9](https://github.com/vuejs/vue-cli/commit/2eb1ef9))
* fix cases where error fails to display ([dee7809](https://github.com/vuejs/vue-cli/commit/dee7809))
* fix devServer proxy when using object syntax (fix [#945](https://github.com/vuejs/vue-cli/issues/945)) ([114e085](https://github.com/vuejs/vue-cli/commit/114e085))
* use dynamic publicPath for web component bundles (fix [#949](https://github.com/vuejs/vue-cli/issues/949)) ([f744040](https://github.com/vuejs/vue-cli/commit/f744040))
<a name="3.0.0-beta.5"></a>
# [3.0.0-beta.5](https://github.com/vuejs/vue-cli/compare/v3.0.0-beta.4...v3.0.0-beta.5) (2018-03-05)
### Bug Fixes
* resolve template extend source from the template location (fix [#943](https://github.com/vuejs/vue-cli/issues/943)) ([89f5cc3](https://github.com/vuejs/vue-cli/commit/89f5cc3))
* temporarily disable babel plugins that are not compatible with babel 7 yet ([389ea86](https://github.com/vuejs/vue-cli/commit/389ea86))
### Features
* allow specifying plugin versions in presets ([bdce865](https://github.com/vuejs/vue-cli/commit/bdce865))
<a name="3.0.0-beta.4"></a>
# [3.0.0-beta.4](https://github.com/vuejs/vue-cli/compare/v3.0.0-beta.3...v3.0.0-beta.4) (2018-03-05)
### Bug Fixes
* fix pwa + ts + lint (close [#937](https://github.com/vuejs/vue-cli/issues/937)) ([b878767](https://github.com/vuejs/vue-cli/commit/b878767))
* mock process for 3rd party libs (close [#934](https://github.com/vuejs/vue-cli/issues/934)) ([a2ac6be](https://github.com/vuejs/vue-cli/commit/a2ac6be))
* **pwa:** set cacheid in GenerateSW mode only ([#939](https://github.com/vuejs/vue-cli/issues/939)) ([43971d8](https://github.com/vuejs/vue-cli/commit/43971d8)), closes [#891](https://github.com/vuejs/vue-cli/issues/891)
* **test:** e2e w/ typescript ([#933](https://github.com/vuejs/vue-cli/issues/933)) ([b728624](https://github.com/vuejs/vue-cli/commit/b728624))
* use same Puppeteer like in main package.json ([#942](https://github.com/vuejs/vue-cli/issues/942)) ([11192cf](https://github.com/vuejs/vue-cli/commit/11192cf))
### Features
* add `vue add` command ([#936](https://github.com/vuejs/vue-cli/issues/936)) ([896aec5](https://github.com/vuejs/vue-cli/commit/896aec5))
* allow specifying additional configs in preset ([2b9a750](https://github.com/vuejs/vue-cli/commit/2b9a750))
* Generator now supports template inheritance ([1869aa2](https://github.com/vuejs/vue-cli/commit/1869aa2))
* generatorAPI.exitLog ([#935](https://github.com/vuejs/vue-cli/issues/935)) ([0f2ee80](https://github.com/vuejs/vue-cli/commit/0f2ee80))
* initialize project with corresponding CSS pre-processor (close [#930](https://github.com/vuejs/vue-cli/issues/930)) ([811d056](https://github.com/vuejs/vue-cli/commit/811d056))
* read existing files during plugin invocation (close [#873](https://github.com/vuejs/vue-cli/issues/873)) ([de60d9f](https://github.com/vuejs/vue-cli/commit/de60d9f))
* support using remote preset (close [#884](https://github.com/vuejs/vue-cli/issues/884)) ([2d89c51](https://github.com/vuejs/vue-cli/commit/2d89c51))
<a name="3.0.0-beta.3"></a>
# [3.0.0-beta.3](https://github.com/vuejs/vue-cli/compare/v3.0.0-beta.2...v3.0.0-beta.3) (2018-03-03)
+17 -1
View File
@@ -84,7 +84,6 @@ A preset is defined in JSON. If you have saved a preset via the command line and
The preset data is used by plugin generators to generate corresponding project files. In addition to the above fields, you can also add additional configuration for integrated tools:
``` js
{
"useConfigFiles": true,
@@ -100,6 +99,23 @@ The preset data is used by plugin generators to generate corresponding project f
These additional configurations will be merged into `package.json` or corresponding config files, depending on the value of `useConfigFiles`. For example, with `"useConfigFiles": true`, the value of `configs.vue` will be merged into `vue.config.js`.
#### Preset Plugin Versioning
You can explicitly specify versions of the plugins being used:
``` js
{
"plugins": {
"@vue/cli-plugin-eslint": {
"version": "^3.0.0",
// ... other options for this plugin
}
}
}
```
Note this is not required for official plugins - when omitted, the CLI will automatically use the latest version available in the registry. However, **it is recommended to provide a explicit version range for any 3rd party plugins listed in a preset**.
#### Remote Presets
You can share a preset with other developers by publishing it in a git repo. The repo should contain a `preset.json` file containing the preset data. You can then use the `--preset` option to use the remote preset when creating a project:
+1 -1
View File
@@ -2,5 +2,5 @@
"lerna": "2.5.1",
"npmClient": "yarn",
"useWorkspaces": true,
"version": "3.0.0-beta.3"
"version": "3.0.0-beta.6"
}
+2 -2
View File
@@ -20,8 +20,8 @@ This is the default Babel preset used in all Vue CLI projects.
- Vue JSX support
- [@babel/plugin-syntax-jsx](https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-jsx)
- [babel-plugin-transform-vue-jsx](https://github.com/vuejs/babel-plugin-transform-vue-jsx)
- [babel-plugin-jsx-event-modifiers](https://github.com/nickmessing/babel-plugin-jsx-event-modifiers)
- [babel-plugin-jsx-v-model](https://github.com/nickmessing/babel-plugin-jsx-v-model)
- ~~[babel-plugin-jsx-event-modifiers](https://github.com/nickmessing/babel-plugin-jsx-event-modifiers)~~ (temporarily disabled until fixed for Babel 7)
- ~~[babel-plugin-jsx-v-model](https://github.com/nickmessing/babel-plugin-jsx-v-model)~~ (temporarily disabled until fixed for Babel 7)
## Options
@@ -64,5 +64,5 @@ test('jsx', () => {
}
`.trim(), defaultOptions)
expect(code).toMatch(`var h = arguments[0]`)
expect(code).toMatch(`return h("div", null, ["bar"])`)
expect(code).toMatch(`return h("div", ["bar"])`)
})
+3 -3
View File
@@ -8,9 +8,9 @@ module.exports = (context, options = {}) => {
if (options.jsx !== false) {
plugins.push(
require('@babel/plugin-syntax-jsx'),
require('babel-plugin-transform-vue-jsx'),
require('babel-plugin-jsx-event-modifiers'),
require('babel-plugin-jsx-v-model')
require('babel-plugin-transform-vue-jsx')
// require('babel-plugin-jsx-event-modifiers'),
// require('babel-plugin-jsx-v-model')
)
}
+2 -4
View File
@@ -1,6 +1,6 @@
{
"name": "@vue/babel-preset-app",
"version": "3.0.0-beta.3",
"version": "3.0.0-beta.6",
"description": "babel-preset-app for vue-cli",
"main": "index.js",
"publishConfig": {
@@ -28,8 +28,6 @@
"@babel/runtime": "^7.0.0-0",
"babel-helper-vue-jsx-merge-props": "^2.0.3",
"babel-plugin-dynamic-import-node": "^1.2.0",
"babel-plugin-jsx-event-modifiers": "^2.0.5",
"babel-plugin-jsx-v-model": "^2.0.3",
"babel-plugin-transform-vue-jsx": "^3.5.1"
"babel-plugin-transform-vue-jsx": "^4.0.1"
}
}
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@vue/cli-init",
"version": "3.0.0-beta.3",
"version": "3.0.0-beta.6",
"description": "init addon for vue-cli",
"main": "index.js",
"publishConfig": {
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@vue/cli-overlay",
"version": "3.0.0-beta.3",
"version": "3.0.0-beta.6",
"description": "error overlay & dev server middleware for vue-cli",
"main": "dist/client.js",
"files": [
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@vue/cli-plugin-babel",
"version": "3.0.0-beta.3",
"version": "3.0.0-beta.6",
"description": "babel plugin for vue-cli",
"main": "index.js",
"repository": {
@@ -20,7 +20,7 @@
"homepage": "https://github.com/vuejs/vue-cli/packages/@vue/cli-plugin-babel#readme",
"dependencies": {
"@babel/core": "^7.0.0-0",
"@vue/babel-preset-app": "^3.0.0-beta.3",
"@vue/babel-preset-app": "^3.0.0-beta.6",
"babel-loader": "^8.0.0-0"
},
"publishConfig": {
@@ -1,6 +1,6 @@
{
"name": "@vue/cli-plugin-e2e-cypress",
"version": "3.0.0-beta.3",
"version": "3.0.0-beta.6",
"description": "e2e-cypress plugin for vue-cli",
"main": "index.js",
"repository": {
@@ -22,7 +22,7 @@
"access": "public"
},
"dependencies": {
"cypress": "^2.0.4",
"cypress": "^2.1.0",
"eslint-plugin-cypress": "^2.0.1"
}
}
@@ -1,6 +1,6 @@
{
"name": "@vue/cli-plugin-e2e-nightwatch",
"version": "3.0.0-beta.3",
"version": "3.0.0-beta.6",
"description": "e2e-nightwatch plugin for vue-cli",
"main": "index.js",
"repository": {
@@ -25,7 +25,7 @@
"chromedriver": "^2.35.0",
"deepmerge": "^2.0.1",
"execa": "^0.9.0",
"nightwatch": "^0.9.19",
"selenium-server": "^3.9.1"
"nightwatch": "^0.9.20",
"selenium-server": "^3.10.0"
}
}
+4 -4
View File
@@ -17,17 +17,17 @@ module.exports = (api, { config, lintOn = [] }) => {
if (config === 'airbnb') {
pkg.eslintConfig.extends.push('@vue/airbnb')
Object.assign(pkg.devDependencies, {
'@vue/eslint-config-airbnb': '^3.0.0-beta.3'
'@vue/eslint-config-airbnb': '^3.0.0-beta.6'
})
} else if (config === 'standard') {
pkg.eslintConfig.extends.push('@vue/standard')
Object.assign(pkg.devDependencies, {
'@vue/eslint-config-standard': '^3.0.0-beta.3'
'@vue/eslint-config-standard': '^3.0.0-beta.6'
})
} else if (config === 'prettier') {
pkg.eslintConfig.extends.push('@vue/prettier')
Object.assign(pkg.devDependencies, {
'@vue/eslint-config-prettier': '^3.0.0-beta.3'
'@vue/eslint-config-prettier': '^3.0.0-beta.6'
})
} else {
// default
@@ -38,7 +38,7 @@ module.exports = (api, { config, lintOn = [] }) => {
if (api.hasPlugin('typescript')) {
pkg.eslintConfig.extends.push('@vue/typescript')
Object.assign(pkg.devDependencies, {
'@vue/eslint-config-typescript': '^3.0.0-beta.3'
'@vue/eslint-config-typescript': '^3.0.0-beta.6'
})
}
+19 -3
View File
@@ -1,8 +1,10 @@
module.exports = function lint (args = {}, api) {
const path = require('path')
const chalk = require('chalk')
const cwd = api.resolve('.')
const { CLIEngine } = require('eslint')
const options = require('./eslintOptions')(api)
const { done } = require('@vue/cli-shared-utils')
const { log, done } = require('@vue/cli-shared-utils')
const files = args._ && args._.length ? args._ : ['src', 'tests', '*.js']
if (args['no-fix']) {
@@ -21,10 +23,24 @@ module.exports = function lint (args = {}, api) {
CLIEngine.outputFixes(report)
}
if (!report.errorCount && !report.warningCount) {
if (!report.errorCount) {
if (!args.silent) {
const hasFixed = report.results.some(f => f.output)
done(hasFixed ? `All lint errors auto-fixed.` : `No lint errors found!`)
if (hasFixed) {
log(`The following files have been auto-fixed:`)
log()
report.results.forEach(f => {
if (f.output) {
log(` ${chalk.blue(path.relative(cwd, f.filePath))}`)
}
})
log()
}
if (report.warningCount) {
console.log(formatter(report.results))
} else {
done(hasFixed ? `All lint errors auto-fixed.` : `No lint errors found!`)
}
}
} else {
console.log(formatter(report.results))
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@vue/cli-plugin-eslint",
"version": "3.0.0-beta.3",
"version": "3.0.0-beta.6",
"description": "eslint plugin for vue-cli",
"main": "index.js",
"repository": {
@@ -23,7 +23,7 @@
},
"dependencies": {
"babel-eslint": "^8.2.2",
"eslint": "^4.18.1",
"eslint": "^4.18.2",
"eslint-loader": "^2.0.0",
"eslint-plugin-vue": "^4.3.0"
}
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@vue/cli-plugin-pwa",
"version": "3.0.0-beta.3",
"version": "3.0.0-beta.6",
"description": "pwa plugin for vue-cli",
"main": "index.js",
"repository": {
@@ -1,6 +1,6 @@
{
"name": "@vue/cli-plugin-typescript",
"version": "3.0.0-beta.3",
"version": "3.0.0-beta.6",
"description": "typescript plugin for vue-cli",
"main": "index.js",
"repository": {
@@ -1,6 +1,6 @@
{
"name": "@vue/cli-plugin-unit-jest",
"version": "3.0.0-beta.3",
"version": "3.0.0-beta.6",
"description": "unit-jest plugin for vue-cli",
"main": "index.js",
"repository": {
@@ -25,7 +25,7 @@
"execa": "^0.9.0",
"jest": "^22.4.2",
"jest-serializer-vue": "^0.3.0",
"vue-jest": "^2.1.0"
"vue-jest": "^2.1.1"
},
"devDependencies": {
"@vue/test-utils": "^1.0.0-beta.10",
@@ -1,6 +1,6 @@
{
"name": "@vue/cli-plugin-unit-mocha",
"version": "3.0.0-beta.3",
"version": "3.0.0-beta.6",
"description": "mocha unit testing plugin for vue-cli",
"main": "index.js",
"repository": {
@@ -1,6 +1,6 @@
{
"name": "@vue/cli-service-global",
"version": "3.0.0-beta.3",
"version": "3.0.0-beta.6",
"description": "vue-cli-service global addon for vue-cli",
"main": "index.js",
"publishConfig": {
@@ -21,11 +21,11 @@
},
"homepage": "https://github.com/vuejs/vue-cli/packages/@vue/cli-build#readme",
"dependencies": {
"@vue/babel-preset-app": "^3.0.0-beta.3",
"@vue/cli-plugin-babel": "^3.0.0-beta.3",
"@vue/cli-plugin-eslint": "^3.0.0-beta.3",
"@vue/cli-service": "^3.0.0-beta.3",
"chalk": "^2.3.1",
"@vue/babel-preset-app": "^3.0.0-beta.6",
"@vue/cli-plugin-babel": "^3.0.0-beta.6",
"@vue/cli-plugin-eslint": "^3.0.0-beta.6",
"@vue/cli-service": "^3.0.0-beta.6",
"chalk": "^2.3.2",
"eslint-plugin-vue": "^4.3.0",
"resolve": "^1.5.0",
"vue": "^2.5.13"
@@ -32,7 +32,7 @@ test('loading plugins from package.json', () => {
mockPkg({
devDependencies: {
'bar': '^1.0.0',
'@vue/cli-plugin-babel': '^3.0.0-beta.3',
'@vue/cli-plugin-babel': '^3.0.0-beta.6',
'vue-cli-plugin-foo': '^1.0.0'
}
})
@@ -68,8 +68,10 @@ module.exports = (api, { target, entry, name }) => {
config.output
.filename(`${entryName}.js`)
.chunkFilename(`${libName}.[id]${minify ? `.min` : ``}.js`)
// use relative publicPath so this can be deployed anywhere
.publicPath('./')
// use dynamic publicPath so this can be deployed anywhere
// the actual path will be determined at runtime by checking
// document.currentScript.src.
.publicPath('')
// externalize Vue in case user imports it
config
@@ -33,6 +33,13 @@ import 'css-loader/lib/css-base'
import 'vue-style-loader/lib/addStylesShadow'
import 'vue-loader/lib/runtime/component-normalizer'
;(() => {
let i
if ((i = document.currentScript) && (i = i.src.match(/(.+\\/)[^/]+\\.js$/))) {
__webpack_public_path__ = i[1]
}
})()
${files.map(file => {
const { camelName, kebabName } = exports.fileToComponentName(prefix, file)
return async
@@ -12,6 +12,14 @@ const path = require('path')
const chalk = require('chalk')
const address = require('address')
const defaultConfig = {
logLevel: 'silent',
secure: false,
changeOrigin: true,
ws: true,
xfwd: true
}
module.exports = function prepareProxy (proxy, appPublicFolder) {
// `proxy` lets you specify alternate servers for specific requests.
// It can either be a string or an object conforming to the Webpack dev server proxy configuration
@@ -42,6 +50,47 @@ module.exports = function prepareProxy (proxy, appPublicFolder) {
return !fs.existsSync(maybePublicPath)
}
function createProxyEntry (target, context) {
if (process.platform === 'win32') {
target = resolveLoopback(target)
}
return {
target,
context (pathname, req) {
// not a static request
if (req.method !== 'GET') {
return true
}
// is a static asset
if (!mayProxy(pathname)) {
return false
}
if (context) {
// Explicit context, e.g. /api
return pathname.match(context)
} else {
// Heuristics: if request `accept`s text/html, we pick /index.html.
// Modern browsers include text/html into `accept` header when navigating.
// However API calls like `fetch()` wont generally accept text/html.
// If this heuristic doesnt work well for you, use a custom `proxy` object.
return (
req.headers.accept &&
req.headers.accept.indexOf('text/html') === -1
)
}
},
onProxyReq (proxyReq) {
// Browers may send Origin headers even with same-origin
// requests. To prevent CORS issues, we have to change
// the Origin to match the target URL.
if (proxyReq.getHeader('origin')) {
proxyReq.setHeader('origin', target)
}
},
onError: onProxyError(target)
}
}
// Support proxy as a string for those who are using the simple proxy option
if (typeof proxy === 'string') {
if (!/^http(s)?:\/\//.test(proxy)) {
@@ -53,49 +102,13 @@ module.exports = function prepareProxy (proxy, appPublicFolder) {
process.exit(1)
}
let target
if (process.platform === 'win32') {
target = resolveLoopback(proxy)
} else {
target = proxy
}
return [
{
target,
logLevel: 'silent',
// For single page apps, we generally want to fallback to /index.html.
// However we also want to respect `proxy` for API calls.
// So if `proxy` is specified as a string, we need to decide which fallback to use.
// We use a heuristic: if request `accept`s text/html, we pick /index.html.
// Modern browsers include text/html into `accept` header when navigating.
// However API calls like `fetch()` wont generally accept text/html.
// If this heuristic doesnt work well for you, use a custom `proxy` object.
context: function (pathname, req) {
return (
mayProxy(pathname) &&
req.headers.accept &&
req.headers.accept.indexOf('text/html') === -1
)
},
onProxyReq: proxyReq => {
// Browers may send Origin headers even with same-origin
// requests. To prevent CORS issues, we have to change
// the Origin to match the target URL.
if (proxyReq.getHeader('origin')) {
proxyReq.setHeader('origin', target)
}
},
onError: onProxyError(target),
secure: false,
changeOrigin: true,
ws: true,
xfwd: true
}
Object.assign({}, defaultConfig, createProxyEntry(proxy))
]
}
// Otherwise, proxy is an object so create an array of proxies to pass to webpackDevServer
return Object.keys(proxy).map(function (context) {
return Object.keys(proxy).map(context => {
if (!proxy[context].hasOwnProperty('target')) {
console.log(
chalk.red(
@@ -105,27 +118,8 @@ module.exports = function prepareProxy (proxy, appPublicFolder) {
)
process.exit(1)
}
let target
if (process.platform === 'win32') {
target = resolveLoopback(proxy[context].target)
} else {
target = proxy[context].target
}
return Object.assign({}, proxy[context], {
context: function (pathname) {
return mayProxy(pathname) && pathname.match(context)
},
onProxyReq: proxyReq => {
// Browers may send Origin headers even with same-origin
// requests. To prevent CORS issues, we have to change
// the Origin to match the target URL.
if (proxyReq.getHeader('origin')) {
proxyReq.setHeader('origin', target)
}
},
target,
onError: onProxyError(target)
})
const entry = createProxyEntry(proxy[context].target, context)
return Object.assign({}, defaultConfig, proxy[context], entry)
})
}
@@ -1,14 +1,38 @@
const chalk = require('chalk')
const TYPE = 'cant-resolve-loader'
const errorRE = /Can't resolve '(.*loader)'/
const rules = [
{
type: 'cant-resolve-loader',
re: /Can't resolve '(.*loader)'/,
msg: (e, match) => (
`Failed to resolve loader: ${chalk.yellow(match[1])}\n` +
`You may need to install it.`
)
}
]
exports.transformer = error => {
if (error.webpackError && error.webpackError.message) {
const match = error.webpackError.message.match(errorRE)
if (match) {
if (error.webpackError) {
const message = typeof error.webpackError === 'string'
? error.webpackError
: error.webpackError.message || ''
for (const { re, msg, type } of rules) {
const match = message.match(re)
if (match) {
return Object.assign({}, error, {
// type is necessary to avoid being printed as defualt error
// by friendly-error-webpack-plugin
type,
shortMessage: msg(error, match)
})
}
}
// no match, unknown webpack error withotu a message.
// friendly-error-webpack-plugin fails to handle this.
if (!error.message) {
return Object.assign({}, error, {
type: TYPE,
loader: match[1]
type: 'unknown-webpack-error',
shortMessage: message
})
}
}
@@ -16,10 +40,8 @@ exports.transformer = error => {
}
exports.formatter = errors => {
errors = errors.filter(e => e.type === TYPE)
errors = errors.filter(e => e.shortMessage)
if (errors.length) {
return errors.map(e => {
return `Failed to resolve loader: ${chalk.yellow(e.loader)}`
}).concat(`\nYou may need to install the missing loader.`)
return errors.map(e => e.shortMessage)
}
}
+11 -11
View File
@@ -1,6 +1,6 @@
{
"name": "@vue/cli-service",
"version": "3.0.0-beta.3",
"version": "3.0.0-beta.6",
"description": "local service for vue-cli projects",
"main": "lib/Service.js",
"bin": {
@@ -21,25 +21,25 @@
},
"homepage": "https://github.com/vuejs/vue-cli/packages/@vue/cli-service#readme",
"dependencies": {
"@vue/cli-overlay": "^3.0.0-beta.3",
"@vue/cli-shared-utils": "^3.0.0-beta.3",
"@vue/cli-overlay": "^3.0.0-beta.6",
"@vue/cli-shared-utils": "^3.0.0-beta.6",
"@vue/web-component-wrapper": "^1.2.0",
"address": "^1.0.3",
"autodll-webpack-plugin": "^0.3.9",
"autoprefixer": "^8.0.0",
"autoprefixer": "^8.1.0",
"cache-loader": "^1.2.2",
"case-sensitive-paths-webpack-plugin": "^2.1.1",
"chalk": "^2.3.1",
"case-sensitive-paths-webpack-plugin": "^2.1.2",
"chalk": "^2.3.2",
"cliui": "^4.0.0",
"copy-webpack-plugin": "^4.4.2",
"copy-webpack-plugin": "^4.5.0",
"css-loader": "^0.28.10",
"escape-string-regexp": "^1.0.5",
"extract-text-webpack-plugin": "^3.0.2",
"file-loader": "^1.1.10",
"file-loader": "^1.1.11",
"friendly-errors-webpack-plugin": "^1.6.1",
"get-value": "^3.0.0",
"globby": "^8.0.1",
"html-webpack-plugin": "^3.0.0",
"html-webpack-plugin": "^3.0.6",
"javascript-stringify": "^1.6.0",
"launch-editor-middleware": "^2.2.1",
"lodash.defaultsdeep": "^4.6.0",
@@ -56,8 +56,8 @@
"string.prototype.padend": "^3.0.0",
"thread-loader": "^1.1.5",
"uglifyjs-webpack-plugin": "^1.2.2",
"url-loader": "^0.6.2",
"vue-loader": "^14.1.1",
"url-loader": "^1.0.1",
"vue-loader": "^14.2.1",
"vue-template-compiler": "^2.5.13",
"webpack": "^3.10.0",
"webpack-chain": "^4.5.0",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@vue/cli-shared-utils",
"version": "3.0.0-beta.3",
"version": "3.0.0-beta.6",
"description": "shared utilities for vue-cli packages",
"main": "index.js",
"repository": {
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@vue/cli-test-utils",
"version": "3.0.0-beta.3",
"version": "3.0.0-beta.6",
"description": "test utilities for vue-cli packages",
"repository": {
"type": "git",
+2 -1
View File
@@ -104,7 +104,8 @@ module.exports = class Creator {
}
const deps = Object.keys(preset.plugins)
deps.forEach(dep => {
pkg.devDependencies[dep] = `^${latest}`
pkg.devDependencies[dep] = preset.plugins[dep].version ||
(/^@vue/.test(dep) ? `^${latest}` : `latest`)
})
// write package.json
await writeFileTree(context, {
+2 -1
View File
@@ -2,6 +2,7 @@ const fs = require('fs')
const ejs = require('ejs')
const path = require('path')
const globby = require('globby')
const resolve = require('resolve')
const isBinary = require('isbinaryfile')
const yaml = require('yaml-front-matter')
const mergeDeps = require('./util/mergeDeps')
@@ -223,7 +224,7 @@ function renderFile (name, data, ejsOptions) {
if (parsed.extend) {
const extendPath = path.isAbsolute(parsed.extend)
? parsed.extend
: require.resolve(parsed.extend)
: resolve.sync(parsed.extend, { basedir: path.dirname(name) })
finalTemplate = fs.readFileSync(extendPath, 'utf-8')
if (parsed.replace) {
if (Array.isArray(parsed.replace)) {
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@vue/cli",
"version": "3.0.0-beta.3",
"version": "3.0.0-beta.6",
"description": "Command line interface for rapid Vue.js development",
"bin": {
"vue": "bin/vue.js"
@@ -27,7 +27,7 @@
"access": "public"
},
"dependencies": {
"@vue/cli-shared-utils": "^3.0.0-beta.3",
"@vue/cli-shared-utils": "^3.0.0-beta.6",
"chalk": "^2.3.0",
"commander": "^2.12.2",
"debug": "^3.1.0",
@@ -1,6 +1,6 @@
{
"name": "@vue/eslint-config-airbnb",
"version": "3.0.0-beta.3",
"version": "3.0.0-beta.6",
"description": "eslint-config-airbnb for vue-cli",
"main": "index.js",
"publishConfig": {
@@ -1,6 +1,6 @@
{
"name": "@vue/eslint-config-prettier",
"version": "3.0.0-beta.3",
"version": "3.0.0-beta.6",
"description": "eslint-config-prettier for vue-cli",
"main": "index.js",
"publishConfig": {
@@ -23,6 +23,6 @@
"dependencies": {
"eslint-config-prettier": "^2.9.0",
"eslint-plugin-prettier": "^2.6.0",
"prettier": "^1.11.0"
"prettier": "^1.11.1"
}
}
@@ -1,6 +1,6 @@
{
"name": "@vue/eslint-config-standard",
"version": "3.0.0-beta.3",
"version": "3.0.0-beta.6",
"description": "eslint-config-standard for vue-cli",
"main": "index.js",
"publishConfig": {
@@ -1,6 +1,6 @@
{
"name": "@vue/eslint-config-typescript",
"version": "3.0.0-beta.3",
"version": "3.0.0-beta.6",
"description": "eslint-config-typescript for vue-cli",
"main": "index.js",
"publishConfig": {
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "vue-cli-version-marker",
"version": "3.0.0-beta.3",
"version": "3.0.0-beta.6",
"description": "version marker for @vue/cli",
"author": "Evan You",
"license": "MIT"
+56 -70
View File
@@ -646,8 +646,8 @@
resolved "https://registry.yarnpkg.com/@types/graphql/-/graphql-0.12.4.tgz#d43bb55d45c6de0178bbd11dd59d04fd42138d94"
"@types/jest@^22.0.1":
version "22.1.4"
resolved "https://registry.yarnpkg.com/@types/jest/-/jest-22.1.4.tgz#5c0c06a9bb495c67e0a78002a952f151e2ae58a1"
version "22.2.0"
resolved "https://registry.yarnpkg.com/@types/jest/-/jest-22.2.0.tgz#55ce83139f7ad1b48b414c3927746614c6963c0f"
"@types/jquery@*":
version "3.3.0"
@@ -787,8 +787,8 @@ acorn@^4.0.3:
resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787"
acorn@^5.0.0, acorn@^5.3.0, acorn@^5.5.0:
version "5.5.0"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.5.0.tgz#1abb587fbf051f94e3de20e6b26ef910b1828298"
version "5.5.1"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.5.1.tgz#84e05a9ea0acbe131227da50301e62464dc9c1d8"
add-stream@^1.0.0:
version "1.0.0"
@@ -1309,7 +1309,7 @@ autoprefixer@^6.3.1:
postcss "^5.2.16"
postcss-value-parser "^3.2.3"
autoprefixer@^8.0.0:
autoprefixer@^8.1.0:
version "8.1.0"
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-8.1.0.tgz#374cf35be1c0e8fce97408d876f95f66f5cb4641"
dependencies:
@@ -1464,26 +1464,10 @@ babel-plugin-jest-hoist@^22.4.1:
version "22.4.1"
resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-22.4.1.tgz#d712fe5da8b6965f3191dacddbefdbdf4fb66d63"
babel-plugin-jsx-event-modifiers@^2.0.5:
version "2.0.5"
resolved "https://registry.yarnpkg.com/babel-plugin-jsx-event-modifiers/-/babel-plugin-jsx-event-modifiers-2.0.5.tgz#93e6ebb5d7553bb08f9fedbf7a0bee3af09a0472"
babel-plugin-jsx-v-model@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/babel-plugin-jsx-v-model/-/babel-plugin-jsx-v-model-2.0.3.tgz#c396416b99cb1af782087315ae1d3e62e070f47d"
dependencies:
babel-plugin-syntax-jsx "^6.18.0"
html-tags "^2.0.0"
svg-tags "^1.0.0"
babel-plugin-syntax-dynamic-import@^6.18.0:
version "6.18.0"
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da"
babel-plugin-syntax-jsx@^6.18.0:
version "6.18.0"
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946"
babel-plugin-syntax-object-rest-spread@^6.13.0:
version "6.13.0"
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5"
@@ -1504,9 +1488,9 @@ babel-plugin-transform-strict-mode@^6.24.1:
babel-runtime "^6.22.0"
babel-types "^6.24.1"
babel-plugin-transform-vue-jsx@^3.5.1:
version "3.5.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-3.5.1.tgz#aa1f4416e4bc835db9a7a1180ae6e74c24a2e1d1"
babel-plugin-transform-vue-jsx@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-4.0.1.tgz#2c8bddce87a6ef09eaa59869ff1bfbeeafc5f88d"
dependencies:
esutils "^2.0.2"
@@ -2001,20 +1985,20 @@ caniuse-api@^1.5.2:
lodash.uniq "^4.5.0"
caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639:
version "1.0.30000812"
resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000812.tgz#29c28dd6927ee43e8c2ab648e5236ac916c97d69"
version "1.0.30000813"
resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000813.tgz#e0a1c603f8880ad787b2a35652b2733f32a5e29a"
caniuse-lite@^1.0.30000809, caniuse-lite@^1.0.30000810:
version "1.0.30000812"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000812.tgz#d173b686b49bc941fa18ff2e7e533048e20ed92c"
version "1.0.30000813"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000813.tgz#7b25e27fdfb8d133f3c932b01f77452140fcc6c9"
capture-stack-trace@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d"
case-sensitive-paths-webpack-plugin@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.1.1.tgz#3d29ced8c1f124bf6f53846fb3f5894731fdc909"
case-sensitive-paths-webpack-plugin@^2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.1.2.tgz#c899b52175763689224571dad778742e133f0192"
caseless@~0.12.0:
version "0.12.0"
@@ -2072,7 +2056,7 @@ chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3:
strip-ansi "^3.0.0"
supports-color "^2.0.0"
chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.1:
chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.1, chalk@^2.3.2:
version "2.3.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.2.tgz#250dc96b07491bfd601e648d66ddf5f60c7a5c65"
dependencies:
@@ -2170,8 +2154,8 @@ class-utils@^0.3.5:
static-extend "^0.1.1"
clean-css@4.1.x:
version "4.1.9"
resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.1.9.tgz#35cee8ae7687a49b98034f70de00c4edd3826301"
version "4.1.11"
resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.1.11.tgz#2ecdf145aba38f54740f26cefd0ff3e03e125d6a"
dependencies:
source-map "0.5.x"
@@ -2693,7 +2677,7 @@ copy-descriptor@^0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
copy-webpack-plugin@^4.4.2:
copy-webpack-plugin@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-4.5.0.tgz#9cb012163317666ea47479d2a8c57daca3557da5"
dependencies:
@@ -2967,7 +2951,7 @@ cyclist@~0.2.2:
version "0.2.2"
resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640"
cypress@^2.0.4:
cypress@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/cypress/-/cypress-2.1.0.tgz#a8bd7d9b89c38a1e380db83b57d9bba0dbb95ba4"
dependencies:
@@ -3493,8 +3477,8 @@ ejs@2.5.7, ejs@^2.5.7:
resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.5.7.tgz#cc872c168880ae3c7189762fd5ffc00896c9518a"
electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.33:
version "1.3.34"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.34.tgz#d93498f40391bb0c16a603d8241b9951404157ed"
version "1.3.36"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.36.tgz#0eabf71a9ebea9013fb1cc35a390e068624f27e8"
elegant-spinner@^1.0.1:
version "1.0.1"
@@ -3817,7 +3801,7 @@ eslint-visitor-keys@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d"
eslint@^4.16.0, eslint@^4.18.1:
eslint@^4.16.0, eslint@^4.18.2:
version "4.18.2"
resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.18.2.tgz#0f81267ad1012e7d2051e186a9004cc2267b8d45"
dependencies:
@@ -4226,7 +4210,7 @@ file-entry-cache@^2.0.0:
flat-cache "^1.2.1"
object-assign "^4.0.1"
file-loader@^1.1.10:
file-loader@^1.1.11:
version "1.1.11"
resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-1.1.11.tgz#6fe886449b0f2a936e43cabaac0cdbfb369506f8"
dependencies:
@@ -5154,13 +5138,9 @@ html-minifier@^3.2.3:
relateurl "0.2.x"
uglify-js "3.3.x"
html-tags@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-2.0.0.tgz#10b30a386085f43cede353cc8fa7cb0deeea668b"
html-webpack-plugin@^3.0.0:
version "3.0.4"
resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-3.0.4.tgz#498c10f40f99a339fbf3d87c5a80acf8cbea8e9b"
html-webpack-plugin@^3.0.6:
version "3.0.6"
resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-3.0.6.tgz#d35b0452aae129a8a9f3fac44a169a625d8cf3fa"
dependencies:
html-minifier "^3.2.3"
loader-utils "^0.2.16"
@@ -6207,8 +6187,8 @@ js-tokens@^3.0.0, js-tokens@^3.0.2:
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
js-yaml@^3.10.0, js-yaml@^3.4.3, js-yaml@^3.5.2, js-yaml@^3.7.0, js-yaml@^3.8.1, js-yaml@^3.9.0, js-yaml@^3.9.1:
version "3.10.0"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc"
version "3.11.0"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.11.0.tgz#597c1a8bd57152f26d622ce4117851a51f5ebaef"
dependencies:
argparse "^1.0.7"
esprima "^4.0.0"
@@ -7179,6 +7159,10 @@ mime@^1.3.4, mime@^1.4.1, mime@^1.5.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
mime@^2.0.3:
version "2.2.0"
resolved "https://registry.yarnpkg.com/mime/-/mime-2.2.0.tgz#161e541965551d3b549fa1114391e3a3d55b923b"
mimic-fn@^1.0.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
@@ -7410,7 +7394,7 @@ netmask@~1.0.4:
version "1.0.6"
resolved "https://registry.yarnpkg.com/netmask/-/netmask-1.0.6.tgz#20297e89d86f6f6400f250d9f4f6b4c1945fcd35"
nightwatch@^0.9.19:
nightwatch@^0.9.20:
version "0.9.20"
resolved "https://registry.yarnpkg.com/nightwatch/-/nightwatch-0.9.20.tgz#156d17cd058cbc31f43ab18e915f7ec297fb53e0"
dependencies:
@@ -8381,7 +8365,7 @@ preserve@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
prettier@^1.11.0, prettier@^1.7.0:
prettier@^1.11.1, prettier@^1.7.0:
version "1.11.1"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.11.1.tgz#61e43fc4cd44e68f2b0dfc2c38cd4bb0fccdcc75"
@@ -9143,7 +9127,7 @@ schema-utils@^0.3.0:
dependencies:
ajv "^5.0.0"
schema-utils@^0.4.0, schema-utils@^0.4.2, schema-utils@^0.4.5:
schema-utils@^0.4.0, schema-utils@^0.4.2, schema-utils@^0.4.3, schema-utils@^0.4.5:
version "0.4.5"
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.5.tgz#21836f0608aac17b78f9e3e24daff14a5ca13a3e"
dependencies:
@@ -9160,7 +9144,7 @@ select-hose@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca"
selenium-server@^3.9.1:
selenium-server@^3.10.0:
version "3.10.0"
resolved "https://registry.yarnpkg.com/selenium-server/-/selenium-server-3.10.0.tgz#b7c78be7785f328ae99f7dc66162bfd9c593964c"
@@ -9714,9 +9698,9 @@ string.prototype.padstart@^3.0.0:
es-abstract "^1.4.3"
function-bind "^1.0.2"
string_decoder@^1.0.0, string_decoder@~1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab"
string_decoder@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.0.tgz#384f322ee8a848e500effde99901bba849c5d403"
dependencies:
safe-buffer "~5.1.0"
@@ -9724,6 +9708,12 @@ string_decoder@~0.10.x:
version "0.10.31"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
string_decoder@~1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab"
dependencies:
safe-buffer "~5.1.0"
stringify-object@^3.2.0:
version "3.2.2"
resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.2.2.tgz#9853052e5a88fb605a44cd27445aa257ad7ffbcd"
@@ -9876,10 +9866,6 @@ supports-color@^5.1.0, supports-color@^5.2.0, supports-color@^5.3.0:
dependencies:
has-flag "^3.0.0"
svg-tags@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764"
svgo@^0.7.0:
version "0.7.2"
resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5"
@@ -10480,13 +10466,13 @@ url-join@^2.0.2:
version "2.0.5"
resolved "https://registry.yarnpkg.com/url-join/-/url-join-2.0.5.tgz#5af22f18c052a000a48d7b82c5e9c2e2feeda728"
url-loader@^0.6.2:
version "0.6.2"
resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-0.6.2.tgz#a007a7109620e9d988d14bce677a1decb9a993f7"
url-loader@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-1.0.1.tgz#61bc53f1f184d7343da2728a1289ef8722ea45ee"
dependencies:
loader-utils "^1.0.2"
mime "^1.4.1"
schema-utils "^0.3.0"
loader-utils "^1.1.0"
mime "^2.0.3"
schema-utils "^0.4.3"
url-parse-lax@^1.0.0:
version "1.0.0"
@@ -10687,7 +10673,7 @@ vue-hot-reload-api@^2.2.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.0.tgz#97976142405d13d8efae154749e88c4e358cf926"
vue-jest@^2.1.0:
vue-jest@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/vue-jest/-/vue-jest-2.1.1.tgz#7e78c7731cd581e88f275ae9b7faf8098e53dda0"
dependencies:
@@ -10702,9 +10688,9 @@ vue-jest@^2.1.0:
tsconfig "^7.0.0"
vue-template-es2015-compiler "^1.5.3"
vue-loader@^14.1.1:
version "14.1.1"
resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-14.1.1.tgz#331f197fcea790d6b8662c29b850806e7eb29342"
vue-loader@^14.2.1:
version "14.2.1"
resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-14.2.1.tgz#3ace19f98187b1fa9e0709defa963a0a2396b6b3"
dependencies:
consolidate "^0.14.0"
hash-sum "^1.0.2"