mirror of
https://github.com/vuejs/vue-cli.git
synced 2026-04-25 06:18:14 -05:00
chore: merge dev
This commit is contained in:
@@ -1,3 +1,55 @@
|
||||
<a name="3.0.0-beta.9"></a>
|
||||
# [3.0.0-beta.9](https://github.com/vuejs/vue-cli/compare/v3.0.0-beta.8...v3.0.0-beta.9) (2018-04-28)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **dependencies:** add deepmerge dependencies ([#1188](https://github.com/vuejs/vue-cli/issues/1188)) ([67fa39d](https://github.com/vuejs/vue-cli/commit/67fa39d)), closes [#1187](https://github.com/vuejs/vue-cli/issues/1187)
|
||||
|
||||
|
||||
|
||||
<a name="3.0.0-beta.8"></a>
|
||||
# [3.0.0-beta.8](https://github.com/vuejs/vue-cli/compare/v3.0.0-beta.7...v3.0.0-beta.8) (2018-04-27)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* --target lib/wc should overwrite user entry/output ([92e136a](https://github.com/vuejs/vue-cli/commit/92e136a)), closes [#1072](https://github.com/vuejs/vue-cli/issues/1072)
|
||||
* add name to chunk file output ([#1173](https://github.com/vuejs/vue-cli/issues/1173)) ([1fc9593](https://github.com/vuejs/vue-cli/commit/1fc9593))
|
||||
* allow user to define testMatch in package.json ([#1069](https://github.com/vuejs/vue-cli/issues/1069)) ([cac18f2](https://github.com/vuejs/vue-cli/commit/cac18f2)), closes [#1067](https://github.com/vuejs/vue-cli/issues/1067)
|
||||
* avoid emoji length problem in update log (close [#835](https://github.com/vuejs/vue-cli/issues/835)) ([fb7ccb6](https://github.com/vuejs/vue-cli/commit/fb7ccb6))
|
||||
* css.extract options handling ([8e72943](https://github.com/vuejs/vue-cli/commit/8e72943)), closes [#1061](https://github.com/vuejs/vue-cli/issues/1061)
|
||||
* deep merge objects when extending package.json via plugins ([#1070](https://github.com/vuejs/vue-cli/issues/1070)) ([6af7bbe](https://github.com/vuejs/vue-cli/commit/6af7bbe)), closes [#1053](https://github.com/vuejs/vue-cli/issues/1053)
|
||||
* include test -> tests for eslint-loader ([3d29458](https://github.com/vuejs/vue-cli/commit/3d29458))
|
||||
* pass all parameters to onProxyReq in proxy configuration ([#1083](https://github.com/vuejs/vue-cli/issues/1083)) ([65ee2fa](https://github.com/vuejs/vue-cli/commit/65ee2fa))
|
||||
* **build:** copy plugin should be loaded in all cases ([87892a5](https://github.com/vuejs/vue-cli/commit/87892a5)), closes [#1073](https://github.com/vuejs/vue-cli/issues/1073)
|
||||
* **build-wc:** honor custom component name for single file wc builds ([#1182](https://github.com/vuejs/vue-cli/issues/1182)) ([2b236e0](https://github.com/vuejs/vue-cli/commit/2b236e0)), closes [#1146](https://github.com/vuejs/vue-cli/issues/1146)
|
||||
* **cli:** fix invoke glob node_modules ignore pattern ([#1004](https://github.com/vuejs/vue-cli/issues/1004)) ([708cde9](https://github.com/vuejs/vue-cli/commit/708cde9))
|
||||
* **cli-service:** should not add a leading slash to baseUrl when it is absolute ([#1172](https://github.com/vuejs/vue-cli/issues/1172)) ([abb82ab](https://github.com/vuejs/vue-cli/commit/abb82ab)), closes [#1084](https://github.com/vuejs/vue-cli/issues/1084)
|
||||
* **eslint:** fix --no-fix flag when linting with typescript plugin ([#1115](https://github.com/vuejs/vue-cli/issues/1115)) ([83171e4](https://github.com/vuejs/vue-cli/commit/83171e4))
|
||||
* **serve:** don't set header origin if using an agent ([#1179](https://github.com/vuejs/vue-cli/issues/1179)) ([79bc088](https://github.com/vuejs/vue-cli/commit/79bc088))
|
||||
* **typescript:** fix invalid tsconfig.json ([#1036](https://github.com/vuejs/vue-cli/issues/1036)) ([c49eeb7](https://github.com/vuejs/vue-cli/commit/c49eeb7))
|
||||
* **typescript,babel:** tests path for babel and typescript plugins ([#1058](https://github.com/vuejs/vue-cli/issues/1058)) ([b285b0b](https://github.com/vuejs/vue-cli/commit/b285b0b))
|
||||
* validate project name ([#1039](https://github.com/vuejs/vue-cli/issues/1039)) ([78ed155](https://github.com/vuejs/vue-cli/commit/78ed155)), closes [#1024](https://github.com/vuejs/vue-cli/issues/1024)
|
||||
* vue invoke should delete renamed/removed files ([#1049](https://github.com/vuejs/vue-cli/issues/1049)) ([c648301](https://github.com/vuejs/vue-cli/commit/c648301))
|
||||
* **unit-jest:** handle static asset imports ([#1180](https://github.com/vuejs/vue-cli/issues/1180)) ([be3bede](https://github.com/vuejs/vue-cli/commit/be3bede))
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **babel:** expose loose option ([7a125d4](https://github.com/vuejs/vue-cli/commit/7a125d4))
|
||||
* **cli:** skip git if already in a git repo, add --skipGit option ([23480ae](https://github.com/vuejs/vue-cli/commit/23480ae)), closes [#967](https://github.com/vuejs/vue-cli/issues/967)
|
||||
* **e2e-nightwatch:** allow using custom config via --config flag ([#1016](https://github.com/vuejs/vue-cli/issues/1016)) ([e4d67d6](https://github.com/vuejs/vue-cli/commit/e4d67d6))
|
||||
* **inspect:** add a -v/--verbose flag to inspect command to output full functions ([#1175](https://github.com/vuejs/vue-cli/issues/1175)) ([6ca86aa](https://github.com/vuejs/vue-cli/commit/6ca86aa)), closes [#1157](https://github.com/vuejs/vue-cli/issues/1157)
|
||||
* allow specifying proxy when creating project ([b1512be](https://github.com/vuejs/vue-cli/commit/b1512be)), closes [#1009](https://github.com/vuejs/vue-cli/issues/1009)
|
||||
* support custom initial commit message ([#1116](https://github.com/vuejs/vue-cli/issues/1116)) ([11ccf64](https://github.com/vuejs/vue-cli/commit/11ccf64))
|
||||
* warn when user modifies output.path directly ([81d29ab](https://github.com/vuejs/vue-cli/commit/81d29ab))
|
||||
* **plugin-api:** allow non-semver versioned dependencies ([#1184](https://github.com/vuejs/vue-cli/issues/1184)) ([0f76b8e](https://github.com/vuejs/vue-cli/commit/0f76b8e)), closes [#1177](https://github.com/vuejs/vue-cli/issues/1177)
|
||||
* **pwa:** Make injected meta tags configurable and change defaults ([#961](https://github.com/vuejs/vue-cli/issues/961)) ([36f954b](https://github.com/vuejs/vue-cli/commit/36f954b))
|
||||
* **typescript:** improve tsx support ([#1168](https://github.com/vuejs/vue-cli/issues/1168)) ([3aa3743](https://github.com/vuejs/vue-cli/commit/3aa3743))
|
||||
|
||||
|
||||
|
||||
<a name="3.0.0-beta.7"></a>
|
||||
# [3.0.0-beta.7](https://github.com/vuejs/vue-cli/compare/v3.0.0-beta.6...v3.0.0-beta.7) (2018-04-25)
|
||||
|
||||
|
||||
+4
-1
@@ -61,12 +61,15 @@ create a new project powered by vue-cli-service
|
||||
|
||||
Options:
|
||||
|
||||
-p, --preset <presetName> Skip prompts and use saved preset
|
||||
-p, --preset <presetName> Skip prompts and use saved or remote preset
|
||||
-d, --default Skip prompts and use default preset
|
||||
-i, --inlinePreset <json> Skip prompts and use inline JSON string as preset
|
||||
-m, --packageManager <command> Use specified npm client when installing dependencies
|
||||
-r, --registry <url> Use specified npm registry when installing dependencies (only for npm)
|
||||
-g, --git [message] Force / skip git intialization, optionally specify initial commit message
|
||||
-f, --force Overwrite target directory if it exists
|
||||
-c, --clone Use git clone when fetching remote preset
|
||||
-x, --proxy Use specified proxy when creating project
|
||||
-h, --help output usage information
|
||||
```
|
||||
|
||||
|
||||
@@ -40,6 +40,7 @@ module.exports = {
|
||||
// CSS related options
|
||||
css: {
|
||||
// extract CSS in components into a single CSS file (only in production)
|
||||
// can also be an object of options to pass to extract-text-webpack-plugin
|
||||
extract: true,
|
||||
|
||||
// enable CSS source maps?
|
||||
|
||||
+1
-1
@@ -2,5 +2,5 @@
|
||||
"lerna": "2.5.1",
|
||||
"npmClient": "yarn",
|
||||
"useWorkspaces": true,
|
||||
"version": "3.0.0-beta.7"
|
||||
"version": "3.0.0-beta.9"
|
||||
}
|
||||
|
||||
@@ -50,3 +50,7 @@ This is the default Babel preset used in all Vue CLI projects.
|
||||
- **jsx**
|
||||
|
||||
Default: `true`. Set to `false` to disable JSX support.
|
||||
|
||||
- **loose**
|
||||
|
||||
Default: `false`. Setting this to `true` will generate code that is more performant but less spec-compliant.
|
||||
|
||||
@@ -14,12 +14,20 @@ module.exports = (context, options = {}) => {
|
||||
)
|
||||
}
|
||||
|
||||
const {
|
||||
loose = false,
|
||||
useBuiltIns = 'usage',
|
||||
modules = false,
|
||||
targets,
|
||||
decoratorsLegacy
|
||||
} = options
|
||||
|
||||
const envOptions = {
|
||||
modules: options.modules || false,
|
||||
targets: options.targets,
|
||||
useBuiltIns: typeof options.useBuiltIns === 'undefined' ? 'usage' : options.useBuiltIns
|
||||
loose,
|
||||
modules,
|
||||
targets,
|
||||
useBuiltIns
|
||||
}
|
||||
delete envOptions.jsx
|
||||
// target running node version (this is set by unit testing plugins)
|
||||
if (process.env.VUE_CLI_BABEL_TARGET_NODE) {
|
||||
envOptions.targets = { node: 'current' }
|
||||
@@ -37,8 +45,9 @@ module.exports = (context, options = {}) => {
|
||||
// stage 2. This includes some important transforms, e.g. dynamic import
|
||||
// and rest object spread.
|
||||
presets.push([require('@babel/preset-stage-2'), {
|
||||
useBuiltIns: true,
|
||||
decoratorsLegacy: options.decoratorsLegacy !== false
|
||||
loose,
|
||||
useBuiltIns: useBuiltIns !== false,
|
||||
decoratorsLegacy: decoratorsLegacy !== false
|
||||
}])
|
||||
|
||||
// transform runtime, but only for helpers
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@vue/babel-preset-app",
|
||||
"version": "3.0.0-beta.7",
|
||||
"version": "3.0.0-beta.9",
|
||||
"description": "babel-preset-app for vue-cli",
|
||||
"main": "index.js",
|
||||
"publishConfig": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@vue/cli-init",
|
||||
"version": "3.0.0-beta.7",
|
||||
"version": "3.0.0-beta.9",
|
||||
"description": "init addon for vue-cli",
|
||||
"main": "index.js",
|
||||
"publishConfig": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@vue/cli-overlay",
|
||||
"version": "3.0.0-beta.7",
|
||||
"version": "3.0.0-beta.9",
|
||||
"description": "error overlay & dev server middleware for vue-cli",
|
||||
"main": "dist/client.js",
|
||||
"files": [
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@vue/cli-plugin-babel",
|
||||
"version": "3.0.0-beta.7",
|
||||
"version": "3.0.0-beta.9",
|
||||
"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-beta.46",
|
||||
"@vue/babel-preset-app": "^3.0.0-beta.7",
|
||||
"@vue/babel-preset-app": "^3.0.0-beta.9",
|
||||
"babel-loader": "^8.0.0-0"
|
||||
},
|
||||
"publishConfig": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@vue/cli-plugin-e2e-cypress",
|
||||
"version": "3.0.0-beta.7",
|
||||
"version": "3.0.0-beta.9",
|
||||
"description": "e2e-cypress plugin for vue-cli",
|
||||
"main": "index.js",
|
||||
"repository": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@vue/cli-plugin-e2e-nightwatch",
|
||||
"version": "3.0.0-beta.7",
|
||||
"version": "3.0.0-beta.9",
|
||||
"description": "e2e-nightwatch plugin for vue-cli",
|
||||
"main": "index.js",
|
||||
"repository": {
|
||||
|
||||
@@ -23,11 +23,11 @@
|
||||
|
||||
ESLint can be configured via `.eslintrc` or the `eslintConfig` field in `package.json`.
|
||||
|
||||
Lint-on-save during development with `eslint-loader` can be enabled with the `lintOnSave` option in `vue.config.js`:
|
||||
Lint-on-save during development with `eslint-loader` is enabled by default. It can be disabled with the `lintOnSave` option in `vue.config.js`:
|
||||
|
||||
``` js
|
||||
module.exports = {
|
||||
lintOnSave: true
|
||||
lintOnSave: false
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
jest.setTimeout(30000)
|
||||
jest.setTimeout(35000)
|
||||
|
||||
const path = require('path')
|
||||
const { linkBin } = require('@vue/cli/lib/util/linkBin')
|
||||
@@ -21,7 +21,7 @@ test('should work', async () => {
|
||||
lintOn: 'commit'
|
||||
}
|
||||
}
|
||||
})
|
||||
}, null, true /* initGit */)
|
||||
const { read, write, run } = project
|
||||
// should've applied airbnb autofix
|
||||
const main = await read('src/main.js')
|
||||
@@ -90,3 +90,33 @@ test('should work', async () => {
|
||||
|
||||
await donePromise
|
||||
})
|
||||
|
||||
test('should not fix with --no-fix option', async () => {
|
||||
const project = await create('eslint-nofix', {
|
||||
plugins: {
|
||||
'@vue/cli-plugin-babel': {},
|
||||
'@vue/cli-plugin-eslint': {
|
||||
config: 'airbnb',
|
||||
lintOn: 'commit'
|
||||
}
|
||||
}
|
||||
})
|
||||
const { read, write, run } = project
|
||||
// should've applied airbnb autofix
|
||||
const main = await read('src/main.js')
|
||||
expect(main).toMatch(';')
|
||||
// remove semicolons
|
||||
const updatedMain = main.replace(/;/g, '')
|
||||
await write('src/main.js', updatedMain)
|
||||
|
||||
// lint with no fix should fail
|
||||
try {
|
||||
await run('vue-cli-service lint --no-fix')
|
||||
} catch (e) {
|
||||
expect(e.code).toBe(1)
|
||||
expect(e.failed).toBeTruthy()
|
||||
}
|
||||
|
||||
// files should not have been fixed
|
||||
expect(await read('src/main.js')).not.toMatch(';')
|
||||
})
|
||||
|
||||
@@ -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.7'
|
||||
'@vue/eslint-config-airbnb': '^3.0.0-beta.9'
|
||||
})
|
||||
} else if (config === 'standard') {
|
||||
pkg.eslintConfig.extends.push('@vue/standard')
|
||||
Object.assign(pkg.devDependencies, {
|
||||
'@vue/eslint-config-standard': '^3.0.0-beta.7'
|
||||
'@vue/eslint-config-standard': '^3.0.0-beta.9'
|
||||
})
|
||||
} else if (config === 'prettier') {
|
||||
pkg.eslintConfig.extends.push('@vue/prettier')
|
||||
Object.assign(pkg.devDependencies, {
|
||||
'@vue/eslint-config-prettier': '^3.0.0-beta.7'
|
||||
'@vue/eslint-config-prettier': '^3.0.0-beta.9'
|
||||
})
|
||||
} 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.7'
|
||||
'@vue/eslint-config-typescript': '^3.0.0-beta.9'
|
||||
})
|
||||
}
|
||||
|
||||
@@ -73,7 +73,7 @@ module.exports = (api, { config, lintOn = [] }) => {
|
||||
}
|
||||
}
|
||||
api.render(files => {
|
||||
files['tests/unit/.eslintrc'] = JSON.stringify(config, null, 2)
|
||||
files['tests/unit/.eslintrc.js'] = api.genJSConfig(config)
|
||||
})
|
||||
} else if (api.hasPlugin('unit-jest')) {
|
||||
const config = {
|
||||
@@ -85,7 +85,7 @@ module.exports = (api, { config, lintOn = [] }) => {
|
||||
}
|
||||
}
|
||||
api.render(files => {
|
||||
files['tests/unit/.eslintrc'] = JSON.stringify(config, null, 2)
|
||||
files['tests/unit/.eslintrc.js'] = api.genJSConfig(config)
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ module.exports = (api, { lintOnSave }) => {
|
||||
.pre()
|
||||
.include
|
||||
.add(api.resolve('src'))
|
||||
.add(api.resolve('test'))
|
||||
.add(api.resolve('tests'))
|
||||
.end()
|
||||
.test(/\.(vue|(j|t)sx?)$/)
|
||||
.use('eslint-loader')
|
||||
|
||||
@@ -7,10 +7,6 @@ module.exports = function lint (args = {}, api) {
|
||||
const { log, done, exit } = require('@vue/cli-shared-utils')
|
||||
|
||||
const files = args._ && args._.length ? args._ : ['src', 'tests', '*.js']
|
||||
if (args['no-fix']) {
|
||||
args.fix = false
|
||||
delete args['no-fix']
|
||||
}
|
||||
const config = Object.assign({}, options, {
|
||||
fix: true,
|
||||
cwd
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@vue/cli-plugin-eslint",
|
||||
"version": "3.0.0-beta.7",
|
||||
"version": "3.0.0-beta.9",
|
||||
"description": "eslint plugin for vue-cli",
|
||||
"main": "index.js",
|
||||
"repository": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@vue/cli-plugin-pwa",
|
||||
"version": "3.0.0-beta.7",
|
||||
"version": "3.0.0-beta.9",
|
||||
"description": "pwa plugin for vue-cli",
|
||||
"main": "index.js",
|
||||
"repository": {
|
||||
|
||||
@@ -32,3 +32,38 @@ test('should work', async () => {
|
||||
// test if tslint is fixing vue files properly
|
||||
expect(lintedApp).toBe(app)
|
||||
})
|
||||
|
||||
test('should not fix with --no-fix option', async () => {
|
||||
const project = await create('ts-lint-nofix', {
|
||||
plugins: {
|
||||
'@vue/cli-plugin-typescript': {
|
||||
tsLint: true
|
||||
}
|
||||
}
|
||||
})
|
||||
const { read, write, run } = project
|
||||
const main = await read('src/main.ts')
|
||||
expect(main).toMatch(';')
|
||||
const app = await read('src/App.vue')
|
||||
expect(main).toMatch(';')
|
||||
// remove semicolons
|
||||
const updatedMain = main.replace(/;/g, '')
|
||||
await write('src/main.ts', updatedMain)
|
||||
// for Vue file, only remove semis in script section
|
||||
const updatedApp = app.replace(/<script(.|\n)*\/script>/, $ => {
|
||||
return $.replace(/;/g, '')
|
||||
})
|
||||
await write('src/App.vue', updatedApp)
|
||||
|
||||
// lint with no fix should fail
|
||||
try {
|
||||
await run('vue-cli-service lint --no-fix')
|
||||
} catch (e) {
|
||||
expect(e.code).toBe(1)
|
||||
expect(e.failed).toBeTruthy()
|
||||
}
|
||||
|
||||
// files should not have been fixed
|
||||
expect(await read('src/main.ts')).not.toMatch(';')
|
||||
expect((await read('src/App.vue')).match(/<script(.|\n)*\/script>/)[1]).not.toMatch(';')
|
||||
})
|
||||
|
||||
@@ -112,7 +112,7 @@ module.exports = (api, {
|
||||
// delete all js files that have a ts file of the same name
|
||||
// and simply rename other js files to ts
|
||||
const jsRE = /\.js$/
|
||||
const excludeRE = /^tests\/e2e\/|\.config\.js$/
|
||||
const excludeRE = /^tests\/e2e\/|(\.config|rc)\.js$/
|
||||
const convertLintFlags = require('../lib/convertLintFlags')
|
||||
api.postProcessFiles(files => {
|
||||
for (const file in files) {
|
||||
|
||||
@@ -1,4 +1,17 @@
|
||||
import Vue, { VNode } from 'vue'
|
||||
|
||||
declare module '*.vue' {
|
||||
import Vue from 'vue';
|
||||
export default Vue;
|
||||
export default Vue
|
||||
}
|
||||
|
||||
declare global {
|
||||
namespace JSX {
|
||||
// tslint:disable no-empty-interface
|
||||
interface Element extends VNode {}
|
||||
// tslint:disable no-empty-interface
|
||||
interface ElementClass extends Vue {}
|
||||
interface IntrinsicElements {
|
||||
[elem: string]: any
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,8 +28,10 @@
|
||||
},
|
||||
"include": [
|
||||
"src/**/*.ts",
|
||||
"src/**/*.tsx",
|
||||
"src/**/*.vue",
|
||||
"tests/**/*.ts"
|
||||
"tests/**/*.ts",
|
||||
"tests/**/*.tsx"
|
||||
],
|
||||
"exclude": [
|
||||
"node_modules"
|
||||
|
||||
@@ -8,7 +8,7 @@ module.exports = function lint (args = {}, api, silent) {
|
||||
const vueCompiler = require('vue-template-compiler')
|
||||
|
||||
const options = {
|
||||
fix: !args['no-fix'],
|
||||
fix: args['fix'] !== false,
|
||||
formatter: args.format || 'codeFrame',
|
||||
formattersDirectory: args['formatters-dir'],
|
||||
rulesDirectory: args['rules-dir']
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@vue/cli-plugin-typescript",
|
||||
"version": "3.0.0-beta.7",
|
||||
"version": "3.0.0-beta.9",
|
||||
"description": "typescript plugin for vue-cli",
|
||||
"main": "index.js",
|
||||
"repository": {
|
||||
|
||||
@@ -18,7 +18,7 @@ test('base', async () => {
|
||||
expect(pkg.scripts.test).toBeTruthy()
|
||||
expect(pkg.devDependencies).toHaveProperty('@vue/test-utils')
|
||||
expect(pkg.devDependencies).toHaveProperty('babel-jest')
|
||||
expect(files['tests/unit/.eslintrc']).toMatch('"jest": true')
|
||||
expect(files['tests/unit/.eslintrc.js']).toMatch('jest: true')
|
||||
|
||||
const spec = files['tests/unit/HelloWorld.spec.js']
|
||||
expect(spec).toMatch(`expect(wrapper.text()).toMatch(msg)`)
|
||||
|
||||
@@ -19,7 +19,8 @@ module.exports = api => {
|
||||
],
|
||||
'transform': {
|
||||
// process *.vue files with vue-jest
|
||||
'^.+\\.vue$': 'vue-jest'
|
||||
'^.+\\.vue$': 'vue-jest',
|
||||
'.+\\.(css|styl|less|sass|scss|png|jpg|ttf|woff|woff2)$': 'jest-transform-stub'
|
||||
},
|
||||
// support the same @ -> src alias mapping in source code
|
||||
'moduleNameMapper': {
|
||||
@@ -65,12 +66,12 @@ module.exports = api => {
|
||||
|
||||
if (api.hasPlugin('eslint')) {
|
||||
api.render(files => {
|
||||
files['tests/unit/.eslintrc'] = JSON.stringify({
|
||||
files['tests/unit/.eslintrc.js'] = api.genJSConfig({
|
||||
env: { jest: true },
|
||||
rules: {
|
||||
'import/no-extraneous-dependencies': 'off'
|
||||
}
|
||||
}, null, 2)
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@vue/cli-plugin-unit-jest",
|
||||
"version": "3.0.0-beta.7",
|
||||
"version": "3.0.0-beta.9",
|
||||
"description": "unit-jest plugin for vue-cli",
|
||||
"main": "index.js",
|
||||
"repository": {
|
||||
@@ -25,6 +25,7 @@
|
||||
"execa": "^0.9.0",
|
||||
"jest": "^22.4.3",
|
||||
"jest-serializer-vue": "^1.0.0",
|
||||
"jest-transform-stub": "^1.0.0",
|
||||
"vue-jest": "^2.5.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -28,10 +28,6 @@
|
||||
|
||||
All [mocha-webpack command line options](http://zinserjan.github.io/mocha-webpack/docs/installation/cli-usage.html) are also supported.
|
||||
|
||||
## Configuration
|
||||
|
||||
Jest can be configured via `jest.config.js` in your project root, or the `jest` field in `package.json`.
|
||||
|
||||
## Installing in an Already Created Project
|
||||
|
||||
``` sh
|
||||
|
||||
@@ -17,7 +17,7 @@ test('base', async () => {
|
||||
|
||||
expect(pkg.scripts.test).toBeTruthy()
|
||||
expect(pkg.devDependencies).toHaveProperty('@vue/test-utils')
|
||||
expect(files['tests/unit/.eslintrc']).toMatch('"mocha": true')
|
||||
expect(files['tests/unit/.eslintrc.js']).toMatch('mocha: true')
|
||||
|
||||
const spec = files['tests/unit/HelloWorld.spec.js']
|
||||
expect(spec).toMatch(`import { expect } from 'chai'`)
|
||||
|
||||
@@ -15,12 +15,12 @@ module.exports = api => {
|
||||
|
||||
if (api.hasPlugin('eslint')) {
|
||||
api.render(files => {
|
||||
files['tests/unit/.eslintrc'] = JSON.stringify({
|
||||
files['tests/unit/.eslintrc.js'] = api.genJSConfig({
|
||||
env: { mocha: true },
|
||||
rules: {
|
||||
'import/no-extraneous-dependencies': 'off'
|
||||
}
|
||||
}, null, 2)
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@vue/cli-plugin-unit-mocha",
|
||||
"version": "3.0.0-beta.7",
|
||||
"version": "3.0.0-beta.9",
|
||||
"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.7",
|
||||
"version": "3.0.0-beta.9",
|
||||
"description": "vue-cli-service global addon for vue-cli",
|
||||
"main": "index.js",
|
||||
"publishConfig": {
|
||||
@@ -21,12 +21,10 @@
|
||||
},
|
||||
"homepage": "https://github.com/vuejs/vue-cli/packages/@vue/cli-build#readme",
|
||||
"dependencies": {
|
||||
"@vue/babel-preset-app": "^3.0.0-beta.7",
|
||||
"@vue/cli-plugin-babel": "^3.0.0-beta.7",
|
||||
"@vue/cli-plugin-eslint": "^3.0.0-beta.7",
|
||||
"@vue/cli-service": "^3.0.0-beta.7",
|
||||
"@vue/cli-ui": "^3.0.0-beta.7",
|
||||
"@vue/cli-ui-addon-webpack": "^3.0.0-beta.7",
|
||||
"@vue/babel-preset-app": "^3.0.0-beta.9",
|
||||
"@vue/cli-plugin-babel": "^3.0.0-beta.9",
|
||||
"@vue/cli-plugin-eslint": "^3.0.0-beta.9",
|
||||
"@vue/cli-service": "^3.0.0-beta.9",
|
||||
"chalk": "^2.4.0",
|
||||
"eslint-plugin-vue": "^4.3.0",
|
||||
"resolve": "^1.7.1",
|
||||
|
||||
@@ -32,7 +32,7 @@ test('loading plugins from package.json', () => {
|
||||
mockPkg({
|
||||
devDependencies: {
|
||||
'bar': '^1.0.0',
|
||||
'@vue/cli-plugin-babel': '^3.0.0-beta.7',
|
||||
'@vue/cli-plugin-babel': '^3.0.0-beta.9',
|
||||
'vue-cli-plugin-foo': '^1.0.0'
|
||||
}
|
||||
})
|
||||
@@ -52,6 +52,18 @@ test('load project options from package.json', () => {
|
||||
expect(service.projectOptions.lintOnSave).toBe(true)
|
||||
})
|
||||
|
||||
test('handle option baseUrl and outputDir correctly', () => {
|
||||
mockPkg({
|
||||
vue: {
|
||||
baseUrl: 'https://foo.com/bar',
|
||||
outputDir: '/public/'
|
||||
}
|
||||
})
|
||||
const service = createMockService()
|
||||
expect(service.projectOptions.baseUrl).toBe('https://foo.com/bar/')
|
||||
expect(service.projectOptions.outputDir).toBe('public')
|
||||
})
|
||||
|
||||
test('load project options from vue.config.js', () => {
|
||||
process.env.VUE_CLI_SERVICE_CONFIG_PATH = `/vue.config.js`
|
||||
fs.writeFileSync('/vue.config.js', `module.exports = { lintOnSave: false }`)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
jest.setTimeout(15000)
|
||||
jest.setTimeout(30000)
|
||||
|
||||
const path = require('path')
|
||||
const portfinder = require('portfinder')
|
||||
@@ -8,6 +8,7 @@ const create = require('@vue/cli-test-utils/createTestProject')
|
||||
const launchPuppeteer = require('@vue/cli-test-utils/launchPuppeteer')
|
||||
|
||||
let server, browser, page
|
||||
|
||||
test('build as wc', async () => {
|
||||
const project = await create('build-wc', defaultPreset)
|
||||
|
||||
@@ -53,7 +54,42 @@ test('build as wc', async () => {
|
||||
expect(h3Text).toMatch('Installed CLI Plugins')
|
||||
})
|
||||
|
||||
afterAll(async () => {
|
||||
test('build as single wc', async () => {
|
||||
const project = await create('build-single-wc', defaultPreset)
|
||||
|
||||
const { stdout } = await project.run(`vue-cli-service build --target wc --name single-wc`)
|
||||
expect(stdout).toMatch('Build complete.')
|
||||
|
||||
expect(project.has('dist/demo.html')).toBe(true)
|
||||
expect(project.has('dist/single-wc.js')).toBe(true)
|
||||
expect(project.has('dist/single-wc.min.js')).toBe(true)
|
||||
|
||||
const port = await portfinder.getPortPromise()
|
||||
server = createServer({ root: path.join(project.dir, 'dist') })
|
||||
|
||||
await new Promise((resolve, reject) => {
|
||||
server.listen(port, err => {
|
||||
if (err) return reject(err)
|
||||
resolve()
|
||||
})
|
||||
})
|
||||
|
||||
const launched = await launchPuppeteer(`http://localhost:${port}/demo.html`)
|
||||
browser = launched.browser
|
||||
page = launched.page
|
||||
|
||||
const styleCount = await page.evaluate(() => {
|
||||
return document.querySelector('single-wc').shadowRoot.querySelectorAll('style').length
|
||||
})
|
||||
expect(styleCount).toBe(2) // should contain styles from both app and child
|
||||
|
||||
const h1Text = await page.evaluate(() => {
|
||||
return document.querySelector('single-wc').shadowRoot.querySelector('h1').textContent
|
||||
})
|
||||
expect(h1Text).toMatch('Welcome to Your Vue.js App')
|
||||
})
|
||||
|
||||
afterEach(async () => {
|
||||
await browser.close()
|
||||
server.close()
|
||||
})
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
const path = require('path')
|
||||
const chalk = require('chalk')
|
||||
const { matchesPluginId } = require('@vue/cli-shared-utils')
|
||||
|
||||
class PluginAPI {
|
||||
@@ -114,7 +115,18 @@ class PluginAPI {
|
||||
* @return {object} Raw webpack config.
|
||||
*/
|
||||
resolveWebpackConfig (chainableConfig) {
|
||||
return this.service.resolveWebpackConfig(chainableConfig)
|
||||
const config = this.service.resolveWebpackConfig(chainableConfig)
|
||||
// performa a few warning checks
|
||||
const options = this.service.projectOptions
|
||||
if (config.output.path !== this.resolve(options.outputDir)) {
|
||||
console.error(chalk.red(
|
||||
`\n\nConfiguration Error: ` +
|
||||
`Avoid modifying webpack output.path directly. ` +
|
||||
`Use the "outputDir" option instead.\n`
|
||||
))
|
||||
process.exit(1)
|
||||
}
|
||||
return config
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -222,10 +222,12 @@ module.exports = class Service {
|
||||
}
|
||||
|
||||
function ensureSlash (config, key) {
|
||||
if (typeof config[key] === 'string') {
|
||||
config[key] = config[key]
|
||||
.replace(/^([^/.])/, '/$1')
|
||||
.replace(/([^/])$/, '$1/')
|
||||
let val = config[key]
|
||||
if (typeof val === 'string') {
|
||||
if (!/^https?:/.test(val)) {
|
||||
val = val.replace(/^([^/.])/, '/$1')
|
||||
}
|
||||
config[key] = val.replace(/([^/])$/, '$1/')
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,3 +1,14 @@
|
||||
import Component from '~entry'
|
||||
;(function () {
|
||||
if (typeof window !== 'undefined') {
|
||||
let i
|
||||
if ((i = window.document.currentScript) && (i = i.src.match(/(.+\/)[^/]+\.js$/))) {
|
||||
__webpack_public_path__ = i[1] // eslint-disable-line
|
||||
}
|
||||
} else {
|
||||
__webpack_public_path__ = '/' // eslint-disable-line
|
||||
}
|
||||
})()
|
||||
|
||||
export default Component
|
||||
import mod from '~entry'
|
||||
export default mod
|
||||
export * from '~entry'
|
||||
|
||||
@@ -14,31 +14,6 @@ module.exports = (api, { entry, name }, options) => {
|
||||
function genConfig (format, postfix = format, genHTML) {
|
||||
const config = api.resolveChainableWebpackConfig()
|
||||
|
||||
config.entryPoints.clear()
|
||||
const entryName = `${libName}.${postfix}`
|
||||
// set proxy entry for *.vue files
|
||||
if (/\.vue$/.test(entry)) {
|
||||
config
|
||||
.entry(entryName)
|
||||
.add(require.resolve('./entry-lib.js'))
|
||||
config.resolve
|
||||
.alias
|
||||
.set('~entry', api.resolve(entry))
|
||||
} else {
|
||||
config
|
||||
.entry(entryName)
|
||||
.add(api.resolve(entry))
|
||||
}
|
||||
|
||||
config.output
|
||||
.filename(`${entryName}.js`)
|
||||
.chunkFilename(`${entryName}.[id].js`)
|
||||
.library(libName)
|
||||
.libraryExport('default')
|
||||
.libraryTarget(format)
|
||||
// use relative publicPath so this can be deployed anywhere
|
||||
.publicPath('./')
|
||||
|
||||
// adjust css output name so they write to the same file
|
||||
if (options.css.extract !== false) {
|
||||
config
|
||||
@@ -76,7 +51,32 @@ module.exports = (api, { entry, name }, options) => {
|
||||
}])
|
||||
}
|
||||
|
||||
return api.resolveWebpackConfig(config)
|
||||
// resolve entry/output
|
||||
const entryName = `${libName}.${postfix}`
|
||||
config.resolve
|
||||
.alias
|
||||
.set('~entry', api.resolve(entry))
|
||||
|
||||
// set entry/output after user configureWebpack hooks are applied
|
||||
const rawConfig = api.resolveWebpackConfig(config)
|
||||
|
||||
rawConfig.entry = {
|
||||
[entryName]: require.resolve('./entry-lib.js')
|
||||
}
|
||||
|
||||
Object.assign(rawConfig.output, {
|
||||
filename: `${entryName}.js`,
|
||||
chunkFilename: `${entryName}.[id].js`,
|
||||
library: libName,
|
||||
libraryExport: 'default',
|
||||
libraryTarget: format,
|
||||
// use dynamic publicPath so this can be deployed anywhere
|
||||
// the actual path will be determined at runtime by checking
|
||||
// document.currentScript.src.
|
||||
publicPath: ''
|
||||
})
|
||||
|
||||
return rawConfig
|
||||
}
|
||||
|
||||
return [
|
||||
|
||||
@@ -18,6 +18,7 @@ module.exports = (api, { target, entry, name }) => {
|
||||
|
||||
// generate dynamic entry based on glob files
|
||||
const resolvedFiles = require('globby').sync([entry], { cwd: api.resolve('.') })
|
||||
|
||||
if (!resolvedFiles.length) {
|
||||
abort(`entry pattern "${entry}" did not match any files.`)
|
||||
}
|
||||
@@ -38,22 +39,11 @@ module.exports = (api, { target, entry, name }) => {
|
||||
}
|
||||
}
|
||||
|
||||
const dynamicEntry = resolveEntry(prefix, resolvedFiles, isAsync)
|
||||
const dynamicEntry = resolveEntry(prefix, libName, resolvedFiles, isAsync)
|
||||
|
||||
function genConfig (minify, genHTML) {
|
||||
const config = api.resolveChainableWebpackConfig()
|
||||
|
||||
config.entryPoints.clear()
|
||||
const entryName = `${libName}${minify ? `.min` : ``}`
|
||||
|
||||
// set proxy entry for *.vue files
|
||||
config
|
||||
.entry(entryName)
|
||||
.add(dynamicEntry)
|
||||
config.resolve
|
||||
.alias
|
||||
.set('~root', api.resolve('.'))
|
||||
|
||||
// make sure not to transpile wc-wrapper
|
||||
config.module
|
||||
.rule('js')
|
||||
@@ -65,14 +55,6 @@ module.exports = (api, { target, entry, name }) => {
|
||||
config.plugins.delete('uglify')
|
||||
}
|
||||
|
||||
config.output
|
||||
.filename(`${entryName}.js`)
|
||||
.chunkFilename(`${libName}.[id]${minify ? `.min` : ``}.js`)
|
||||
// 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
|
||||
.externals({
|
||||
@@ -104,13 +86,40 @@ module.exports = (api, { target, entry, name }) => {
|
||||
inject: false,
|
||||
filename: 'demo.html',
|
||||
libName,
|
||||
components: resolvedFiles.map(file => {
|
||||
return fileToComponentName(prefix, file).kebabName
|
||||
})
|
||||
components:
|
||||
prefix === ''
|
||||
? [libName]
|
||||
: resolvedFiles.map(file => {
|
||||
return fileToComponentName(prefix, file).kebabName
|
||||
})
|
||||
}])
|
||||
}
|
||||
|
||||
return api.resolveWebpackConfig(config)
|
||||
// set entry/output last so it takes higher priority than user
|
||||
// configureWebpack hooks
|
||||
|
||||
// set proxy entry for *.vue files
|
||||
config.resolve
|
||||
.alias
|
||||
.set('~root', api.resolve('.'))
|
||||
|
||||
const rawConfig = api.resolveWebpackConfig(config)
|
||||
|
||||
const entryName = `${libName}${minify ? `.min` : ``}`
|
||||
rawConfig.entry = {
|
||||
[entryName]: dynamicEntry
|
||||
}
|
||||
|
||||
Object.assign(rawConfig.output, {
|
||||
filename: `${entryName}.js`,
|
||||
chunkFilename: `${libName}.[id]${minify ? `.min` : ``}.js`,
|
||||
// use dynamic publicPath so this can be deployed anywhere
|
||||
// the actual path will be determined at runtime by checking
|
||||
// document.currentScript.src.
|
||||
publicPath: ''
|
||||
})
|
||||
|
||||
return rawConfig
|
||||
}
|
||||
|
||||
return [
|
||||
|
||||
@@ -11,6 +11,22 @@ const hyphenate = str => {
|
||||
return str.replace(hyphenateRE, '-$1').toLowerCase()
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates the script to add the component to the custom elements
|
||||
* @param {string} prefix The prefix for the component library
|
||||
* @param {string} component The component name for single entry builds, component file for multi-entry builds
|
||||
* @param {string} file The file for the component
|
||||
* @param {boolean} async Whether to load component async or not
|
||||
*/
|
||||
const createElement = (prefix, component, file, async) => {
|
||||
const { camelName, kebabName } = exports.fileToComponentName(prefix, component)
|
||||
|
||||
return async
|
||||
? `window.customElements.define('${kebabName}', wrap(Vue, () => import('~root/${file}')))\n`
|
||||
: `import ${camelName} from '~root/${file}'\n` +
|
||||
`window.customElements.define('${kebabName}', wrap(Vue, ${camelName}))\n`
|
||||
}
|
||||
|
||||
exports.fileToComponentName = (prefix, file) => {
|
||||
const basename = path.basename(file).replace(/\.(jsx?|vue)$/, '')
|
||||
const camelName = camelize(basename)
|
||||
@@ -22,8 +38,13 @@ exports.fileToComponentName = (prefix, file) => {
|
||||
}
|
||||
}
|
||||
|
||||
exports.resolveEntry = (prefix, files, async) => {
|
||||
exports.resolveEntry = (prefix, libName, files, async) => {
|
||||
const filePath = path.resolve(__dirname, 'entry-wc.js')
|
||||
const elements =
|
||||
prefix === ''
|
||||
? [createElement('', libName, files[0])]
|
||||
: files.map(file => createElement(prefix, file, file, async)).join('\n')
|
||||
|
||||
const content = `
|
||||
import Vue from 'vue'
|
||||
import wrap from '@vue/web-component-wrapper'
|
||||
@@ -40,15 +61,7 @@ import 'vue-loader/lib/runtime/component-normalizer'
|
||||
}
|
||||
})()
|
||||
|
||||
${files.map(file => {
|
||||
const { camelName, kebabName } = exports.fileToComponentName(prefix, file)
|
||||
return async
|
||||
? `window.customElements.define('${kebabName}', wrap(Vue, () => import('~root/${file}')))\n`
|
||||
: (
|
||||
`import ${camelName} from '~root/${file}'\n` +
|
||||
`window.customElements.define('${kebabName}', wrap(Vue, ${camelName}))\n`
|
||||
)
|
||||
}).join('\n')}`.trim()
|
||||
${elements}`.trim()
|
||||
fs.writeFileSync(filePath, content)
|
||||
return filePath
|
||||
}
|
||||
|
||||
@@ -3,7 +3,8 @@ module.exports = (api, options) => {
|
||||
description: 'inspect internal webpack config',
|
||||
usage: 'vue-cli-service inspect [options] [...paths]',
|
||||
options: {
|
||||
'--mode': 'specify env mode (default: development)'
|
||||
'--mode': 'specify env mode (default: development)',
|
||||
'--verbose': 'show full function definitions in output'
|
||||
}
|
||||
}, args => {
|
||||
api.setMode(args.mode || 'development')
|
||||
@@ -27,13 +28,15 @@ module.exports = (api, options) => {
|
||||
|
||||
const pluginRE = /(?:function|class) (\w+Plugin)/
|
||||
console.log(stringify(res, (value, indent, stringify) => {
|
||||
if (typeof value === 'function' && value.toString().length > 100) {
|
||||
return `function () { /* omitted long function */ }`
|
||||
}
|
||||
if (value && typeof value.constructor === 'function') {
|
||||
const match = value.constructor.toString().match(pluginRE)
|
||||
if (match) {
|
||||
return `/* ${match[1]} */ ` + stringify(value)
|
||||
if (!args.verbose) {
|
||||
if (typeof value === 'function' && value.toString().length > 100) {
|
||||
return `function () { /* omitted long function */ }`
|
||||
}
|
||||
if (value && typeof value.constructor === 'function') {
|
||||
const match = value.constructor.toString().match(pluginRE)
|
||||
if (match) {
|
||||
return `/* ${match[1]} */ ` + stringify(value)
|
||||
}
|
||||
}
|
||||
}
|
||||
return stringify(value)
|
||||
|
||||
@@ -38,6 +38,15 @@ module.exports = (api, options) => {
|
||||
)
|
||||
])
|
||||
|
||||
// copy static assets in public/
|
||||
webpackConfig
|
||||
.plugin('copy')
|
||||
.use(require('copy-webpack-plugin'), [[{
|
||||
from: api.resolve('public'),
|
||||
to: api.resolve(options.outputDir),
|
||||
ignore: ['index.html', '.DS_Store']
|
||||
}]])
|
||||
|
||||
if (process.env.NODE_ENV === 'production') {
|
||||
// minify HTML
|
||||
webpackConfig
|
||||
@@ -142,15 +151,6 @@ module.exports = (api, options) => {
|
||||
}])
|
||||
.after('preload')
|
||||
}
|
||||
|
||||
// copy static assets in public/
|
||||
webpackConfig
|
||||
.plugin('copy')
|
||||
.use(require('copy-webpack-plugin'), [[{
|
||||
from: api.resolve('public'),
|
||||
to: api.resolve(options.outputDir),
|
||||
ignore: ['index.html', '.DS_Store']
|
||||
}]])
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -103,18 +103,15 @@ module.exports = (api, options) => {
|
||||
|
||||
// inject CSS extraction plugin
|
||||
if (extract) {
|
||||
const userOptions = options.extractCSS && typeof options.extractCSS === 'object'
|
||||
? options.extractCSS
|
||||
const extractOptions = userOptions.extract && typeof userOptions.extract === 'object'
|
||||
? userOptions.extract
|
||||
: {}
|
||||
webpackConfig
|
||||
.plugin('extract-css')
|
||||
.use(ExtractTextPlugin, [Object.assign({
|
||||
filename: `css/[name].[contenthash:8].css`,
|
||||
allChunks: true
|
||||
}, userOptions)])
|
||||
}, extractOptions)])
|
||||
}
|
||||
|
||||
// TODO document receipe for using css.loaderOptions to add `data` option
|
||||
// to sass-loader
|
||||
})
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ const schema = createSchema(joi => joi.object({
|
||||
// css
|
||||
css: joi.object({
|
||||
modules: joi.boolean(),
|
||||
extract: joi.boolean(),
|
||||
extract: joi.alternatives().try(joi.boolean(), joi.object()),
|
||||
localIdentName: joi.string(),
|
||||
sourceMap: joi.boolean(),
|
||||
loaderOptions: joi.object({
|
||||
|
||||
@@ -79,14 +79,14 @@ module.exports = function prepareProxy (proxy, appPublicFolder) {
|
||||
)
|
||||
}
|
||||
},
|
||||
onProxyReq (proxyReq) {
|
||||
onProxyReq (proxyReq, req, res) {
|
||||
if (usersOnProxyReq) {
|
||||
usersOnProxyReq(proxyReq)
|
||||
usersOnProxyReq(proxyReq, req, res)
|
||||
}
|
||||
// Browsers 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')) {
|
||||
if (!proxyReq.agent && proxyReq.getHeader('origin')) {
|
||||
proxyReq.setHeader('origin', target)
|
||||
}
|
||||
},
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@vue/cli-service",
|
||||
"version": "3.0.0-beta.7",
|
||||
"version": "3.0.0-beta.9",
|
||||
"description": "local service for vue-cli projects",
|
||||
"main": "lib/Service.js",
|
||||
"bin": {
|
||||
@@ -21,8 +21,8 @@
|
||||
},
|
||||
"homepage": "https://github.com/vuejs/vue-cli/packages/@vue/cli-service#readme",
|
||||
"dependencies": {
|
||||
"@vue/cli-overlay": "^3.0.0-beta.7",
|
||||
"@vue/cli-shared-utils": "^3.0.0-beta.7",
|
||||
"@vue/cli-overlay": "^3.0.0-beta.9",
|
||||
"@vue/cli-shared-utils": "^3.0.0-beta.9",
|
||||
"@vue/web-component-wrapper": "^1.2.0",
|
||||
"acorn": "^5.5.3",
|
||||
"address": "^1.0.3",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@vue/cli-shared-utils",
|
||||
"version": "3.0.0-beta.7",
|
||||
"version": "3.0.0-beta.9",
|
||||
"description": "shared utilities for vue-cli packages",
|
||||
"main": "index.js",
|
||||
"repository": {
|
||||
|
||||
@@ -11,7 +11,7 @@ module.exports = async function assertPromptModule (
|
||||
opts = {}
|
||||
) {
|
||||
// auto fill non-module prompts
|
||||
if (opts.plguinsOnly) {
|
||||
if (opts.pluginsOnly) {
|
||||
expectedPrompts.unshift(
|
||||
{
|
||||
message: 'Please pick a preset',
|
||||
@@ -40,7 +40,7 @@ module.exports = async function assertPromptModule (
|
||||
const creator = new Creator('test', '/', [].concat(module))
|
||||
const preset = await creator.promptAndResolvePreset()
|
||||
|
||||
if (opts.plguinsOnly) {
|
||||
if (opts.pluginsOnly) {
|
||||
delete preset.useConfigFiles
|
||||
}
|
||||
expect(preset).toEqual(expectedOptions)
|
||||
|
||||
@@ -7,7 +7,7 @@ const writeFile = promisify(fs.writeFile)
|
||||
const rmFile = promisify(fs.unlink)
|
||||
const mkdirp = promisify(require('mkdirp'))
|
||||
|
||||
module.exports = function createTestProject (name, preset, cwd) {
|
||||
module.exports = function createTestProject (name, preset, cwd, initGit) {
|
||||
cwd = cwd || path.resolve(__dirname, '../../test')
|
||||
|
||||
const projectRoot = path.resolve(cwd, name)
|
||||
@@ -46,7 +46,9 @@ module.exports = function createTestProject (name, preset, cwd) {
|
||||
name,
|
||||
'--force',
|
||||
'--inlinePreset',
|
||||
JSON.stringify(preset)
|
||||
JSON.stringify(preset),
|
||||
'--git',
|
||||
initGit ? 'init' : 'false'
|
||||
]
|
||||
|
||||
const options = {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@vue/cli-test-utils",
|
||||
"version": "3.0.0-beta.7",
|
||||
"version": "3.0.0-beta.9",
|
||||
"description": "test utilities for vue-cli packages",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@vue/cli-ui-addon-webpack",
|
||||
"version": "3.0.0-beta.7",
|
||||
"version": "3.0.0-beta.9",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"serve": "vue-cli-service serve",
|
||||
@@ -13,10 +13,10 @@
|
||||
"vuex": "^3.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@vue/cli-plugin-babel": "^3.0.0-beta.7",
|
||||
"@vue/cli-plugin-eslint": "^3.0.0-beta.7",
|
||||
"@vue/cli-service": "^3.0.0-beta.7",
|
||||
"@vue/eslint-config-standard": "^3.0.0-beta.7",
|
||||
"@vue/cli-plugin-babel": "^3.0.0-beta.9",
|
||||
"@vue/cli-plugin-eslint": "^3.0.0-beta.9",
|
||||
"@vue/cli-service": "^3.0.0-beta.9",
|
||||
"@vue/eslint-config-standard": "^3.0.0-beta.9",
|
||||
"stylus": "^0.54.5",
|
||||
"stylus-loader": "^3.0.1",
|
||||
"vue-template-compiler": "^2.5.16"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@vue/cli-ui",
|
||||
"version": "3.0.0-beta.7",
|
||||
"version": "3.0.0-beta.9",
|
||||
"author": "Guillaume Chau",
|
||||
"license": "MIT",
|
||||
"main": "index.js",
|
||||
@@ -50,10 +50,10 @@
|
||||
"xterm": "^3.2.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@vue/cli-plugin-babel": "^3.0.0-beta.7",
|
||||
"@vue/cli-plugin-eslint": "^3.0.0-beta.7",
|
||||
"@vue/cli-service": "^3.0.0-beta.7",
|
||||
"@vue/eslint-config-standard": "^3.0.0-beta.7",
|
||||
"@vue/cli-plugin-babel": "^3.0.0-beta.9",
|
||||
"@vue/cli-plugin-eslint": "^3.0.0-beta.9",
|
||||
"@vue/cli-service": "^3.0.0-beta.9",
|
||||
"@vue/eslint-config-standard": "^3.0.0-beta.9",
|
||||
"eslint": "^4.16.0",
|
||||
"lint-staged": "^6.0.0",
|
||||
"stylus": "^0.54.5",
|
||||
|
||||
@@ -4,6 +4,7 @@ const fs = require('fs')
|
||||
const path = require('path')
|
||||
const Generator = require('../lib/Generator')
|
||||
const { logs } = require('@vue/cli-shared-utils')
|
||||
const stringifyJS = require('javascript-stringify')
|
||||
|
||||
// prepare template fixtures
|
||||
const mkdirp = require('mkdirp')
|
||||
@@ -114,6 +115,79 @@ test('api: extendPackage function', async () => {
|
||||
})
|
||||
})
|
||||
|
||||
test('api: extendPackage allow git, github, http, file version ranges', async () => {
|
||||
const generator = new Generator('/', { plugins: [
|
||||
{
|
||||
id: 'test',
|
||||
apply: api => {
|
||||
api.extendPackage({
|
||||
dependencies: {
|
||||
foo: 'git+ssh://git@github.com:npm/npm.git#v1.0.27',
|
||||
baz: 'git://github.com/npm/npm.git#v1.0.27',
|
||||
bar: 'expressjs/express',
|
||||
bad: 'mochajs/mocha#4727d357ea',
|
||||
bac: 'http://asdf.com/asdf.tar.gz',
|
||||
bae: 'file:../dyl',
|
||||
'my-lib': 'https://bitbucket.org/user/my-lib.git#semver:^1.0.0'
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
] })
|
||||
|
||||
await generator.generate()
|
||||
|
||||
const pkg = JSON.parse(fs.readFileSync('/package.json', 'utf-8'))
|
||||
expect(pkg).toEqual({
|
||||
dependencies: {
|
||||
foo: 'git+ssh://git@github.com:npm/npm.git#v1.0.27',
|
||||
baz: 'git://github.com/npm/npm.git#v1.0.27',
|
||||
bar: 'expressjs/express',
|
||||
bad: 'mochajs/mocha#4727d357ea',
|
||||
bac: 'http://asdf.com/asdf.tar.gz',
|
||||
bae: 'file:../dyl',
|
||||
'my-lib': 'https://bitbucket.org/user/my-lib.git#semver:^1.0.0'
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
test('api: extendPackage merge nonstrictly semver deps', async () => {
|
||||
const generator = new Generator('/', { plugins: [
|
||||
{
|
||||
id: 'test',
|
||||
apply: api => {
|
||||
api.extendPackage({
|
||||
dependencies: {
|
||||
'my-lib': 'https://bitbucket.org/user/my-lib.git#semver:1.0.0',
|
||||
bar: 'expressjs/express'
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
{
|
||||
id: 'test2',
|
||||
apply: api => {
|
||||
api.extendPackage({
|
||||
dependencies: {
|
||||
'my-lib': 'https://bitbucket.org/user/my-lib.git#semver:1.2.0',
|
||||
bar: 'expressjs/express'
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
] })
|
||||
|
||||
await generator.generate()
|
||||
|
||||
const pkg = JSON.parse(fs.readFileSync('/package.json', 'utf-8'))
|
||||
expect(pkg).toEqual({
|
||||
dependencies: {
|
||||
'my-lib': 'https://bitbucket.org/user/my-lib.git#semver:1.2.0',
|
||||
bar: 'expressjs/express'
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
test('api: extendPackage merge dependencies', async () => {
|
||||
const generator = new Generator('/', { plugins: [
|
||||
{
|
||||
@@ -208,6 +282,40 @@ test('api: extendPackage dependencies conflict', async () => {
|
||||
})).toBe(true)
|
||||
})
|
||||
|
||||
test('api: extendPackage merge warn nonstrictly semver deps', async () => {
|
||||
new Generator('/', { plugins: [
|
||||
{
|
||||
id: 'test3',
|
||||
apply: api => {
|
||||
api.extendPackage({
|
||||
dependencies: {
|
||||
bar: 'expressjs/express'
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
{
|
||||
id: 'test4',
|
||||
apply: api => {
|
||||
api.extendPackage({
|
||||
dependencies: {
|
||||
bar: 'expressjs/express#1234'
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
] })
|
||||
|
||||
expect(logs.warn.some(([msg]) => {
|
||||
return (
|
||||
msg.match(/conflicting versions for project dependency "bar"/) &&
|
||||
msg.match(/expressjs\/express injected by generator "test3"/) &&
|
||||
msg.match(/expressjs\/express#1234 injected by generator "test4"/) &&
|
||||
msg.match(/Using version \(expressjs\/express\)/)
|
||||
)
|
||||
})).toBe(true)
|
||||
})
|
||||
|
||||
test('api: render fs directory', async () => {
|
||||
const generator = new Generator('/', { plugins: [
|
||||
{
|
||||
@@ -327,7 +435,7 @@ test('api: resolve', () => {
|
||||
test('extract config files', async () => {
|
||||
const configs = {
|
||||
vue: {
|
||||
lintOnSave: true
|
||||
lintOnSave: false
|
||||
},
|
||||
babel: {
|
||||
presets: ['@vue/app']
|
||||
@@ -357,9 +465,10 @@ test('extract config files', async () => {
|
||||
})
|
||||
|
||||
const json = v => JSON.stringify(v, null, 2)
|
||||
expect(fs.readFileSync('/vue.config.js', 'utf-8')).toMatch('module.exports = {\n lintOnSave: true\n}')
|
||||
const js = v => `module.exports = ${stringifyJS(v, null, 2)}`
|
||||
expect(fs.readFileSync('/vue.config.js', 'utf-8')).toMatch(js(configs.vue))
|
||||
expect(fs.readFileSync('/.babelrc', 'utf-8')).toMatch(json(configs.babel))
|
||||
expect(fs.readFileSync('/.postcssrc', 'utf-8')).toMatch(json(configs.postcss))
|
||||
expect(fs.readFileSync('/.eslintrc', 'utf-8')).toMatch(json(configs.eslintConfig))
|
||||
expect(fs.readFileSync('/jest.config.js', 'utf-8')).toMatch(`module.exports = {\n foo: 'bar'\n}`)
|
||||
expect(fs.readFileSync('/.postcssrc.js', 'utf-8')).toMatch(js(configs.postcss))
|
||||
expect(fs.readFileSync('/.eslintrc.js', 'utf-8')).toMatch(js(configs.eslintConfig))
|
||||
expect(fs.readFileSync('/jest.config.js', 'utf-8')).toMatch(js(configs.jest))
|
||||
})
|
||||
|
||||
@@ -5,6 +5,12 @@ const invoke = require('../lib/invoke')
|
||||
const { expectPrompts } = require('inquirer')
|
||||
const create = require('@vue/cli-test-utils/createTestProject')
|
||||
|
||||
const parseJS = file => {
|
||||
const res = {}
|
||||
;(new Function('module', file))(res)
|
||||
return res.exports
|
||||
}
|
||||
|
||||
async function createAndInstall (name) {
|
||||
const project = await create(name, {
|
||||
plugins: {
|
||||
@@ -26,7 +32,7 @@ async function assertUpdates (project) {
|
||||
'pre-commit': 'lint-staged'
|
||||
})
|
||||
|
||||
const eslintrc = JSON.parse(await project.read('.eslintrc'))
|
||||
const eslintrc = parseJS(await project.read('.eslintrc.js'))
|
||||
expect(eslintrc).toEqual({
|
||||
root: true,
|
||||
extends: ['plugin:vue/essential', '@vue/airbnb']
|
||||
@@ -78,7 +84,7 @@ test('invoke with existing files', async () => {
|
||||
// mock existing vue.config.js
|
||||
await project.write('vue.config.js', `module.exports = { lintOnSave: true }`)
|
||||
|
||||
const eslintrc = JSON.parse(await project.read('.eslintrc'))
|
||||
const eslintrc = parseJS(await project.read('.eslintrc.js'))
|
||||
expect(eslintrc).toEqual({
|
||||
root: true,
|
||||
extends: ['plugin:vue/essential', 'eslint:recommended']
|
||||
@@ -104,13 +110,13 @@ test('invoke with existing files (yaml)', async () => {
|
||||
pkg.devDependencies['@vue/cli-plugin-eslint'] = '*'
|
||||
await project.write('package.json', JSON.stringify(pkg, null, 2))
|
||||
|
||||
const eslintrc = JSON.parse(await project.read('.eslintrc'))
|
||||
const eslintrc = parseJS(await project.read('.eslintrc.js'))
|
||||
expect(eslintrc).toEqual({
|
||||
root: true,
|
||||
extends: ['plugin:vue/essential', 'eslint:recommended']
|
||||
})
|
||||
|
||||
await project.rm(`.eslintrc`)
|
||||
await project.rm(`.eslintrc.js`)
|
||||
await project.write(`.eslintrc.yml`, `
|
||||
root: true
|
||||
extends:
|
||||
|
||||
@@ -41,8 +41,10 @@ program
|
||||
.option('-i, --inlinePreset <json>', 'Skip prompts and use inline JSON string as preset')
|
||||
.option('-m, --packageManager <command>', 'Use specified npm client when installing dependencies')
|
||||
.option('-r, --registry <url>', 'Use specified npm registry when installing dependencies (only for npm)')
|
||||
.option('-g, --git [message]', 'Force / skip git intialization, optionally specify initial commit message')
|
||||
.option('-f, --force', 'Overwrite target directory if it exists')
|
||||
.option('-c, --clone', 'Use git clone when fetching remote preset')
|
||||
.option('-x, --proxy', 'Use specified proxy when creating project')
|
||||
.action((name, cmd) => {
|
||||
require('../lib/create')(name, cleanArgs(cmd))
|
||||
})
|
||||
@@ -66,9 +68,10 @@ program
|
||||
program
|
||||
.command('inspect [paths...]')
|
||||
.option('--mode <mode>')
|
||||
.option('-v --verbose', 'Show full function definitions in output')
|
||||
.description('inspect the webpack config in a project with vue-cli-service')
|
||||
.action((paths, cmd) => {
|
||||
require('../lib/inspect')(paths, cmd.mode)
|
||||
require('../lib/inspect')(paths, cleanArgs(cmd))
|
||||
})
|
||||
|
||||
program
|
||||
@@ -100,6 +103,7 @@ program
|
||||
program
|
||||
.command('init <template> <app-name>')
|
||||
.description('generate a project from a remote template (legacy API, requires @vue/cli-init)')
|
||||
.option('-c, --clone', 'Use git clone when fetching remote template')
|
||||
.action(() => {
|
||||
loadCommand('init', '@vue/cli-init')
|
||||
})
|
||||
|
||||
@@ -50,17 +50,15 @@ module.exports = class Creator extends EventEmitter {
|
||||
this.promptCompleteCbs = []
|
||||
this.createCompleteCbs = []
|
||||
|
||||
this.run = this.run.bind(this)
|
||||
|
||||
const promptAPI = new PromptModuleAPI(this)
|
||||
promptModules.forEach(m => m(promptAPI))
|
||||
}
|
||||
|
||||
async create (cliOptions = {}, preset = null) {
|
||||
const isTestOrDebug = process.env.VUE_CLI_TEST || process.env.VUE_CLI_DEBUG
|
||||
const { name, context, createCompleteCbs } = this
|
||||
const run = (command, args) => {
|
||||
if (!args) { [command, ...args] = command.split(/\s+/) }
|
||||
return execa(command, args, { cwd: context })
|
||||
}
|
||||
const { run, name, context, createCompleteCbs } = this
|
||||
|
||||
if (!preset) {
|
||||
if (cliOptions.preset) {
|
||||
@@ -120,7 +118,8 @@ module.exports = class Creator extends EventEmitter {
|
||||
|
||||
// intilaize git repository before installing deps
|
||||
// so that vue-cli-service can setup git hooks.
|
||||
if (hasGit()) {
|
||||
const shouldInitGit = await this.shouldInitGit(cliOptions)
|
||||
if (shouldInitGit) {
|
||||
logWithSpinner(`🗃`, `Initializing git repository...`)
|
||||
this.emit('creation', { event: 'git-init' })
|
||||
await run('git init')
|
||||
@@ -169,13 +168,14 @@ module.exports = class Creator extends EventEmitter {
|
||||
}
|
||||
|
||||
// commit initial state
|
||||
if (hasGit()) {
|
||||
if (shouldInitGit) {
|
||||
await run('git add -A')
|
||||
if (isTestOrDebug) {
|
||||
await run('git', ['config', 'user.name', 'test'])
|
||||
await run('git', ['config', 'user.email', 'test@test.com'])
|
||||
}
|
||||
await run(`git commit -m init`)
|
||||
const msg = typeof cliOptions.git === 'string' ? cliOptions.git : 'init'
|
||||
await run('git', ['commit', '-m', msg])
|
||||
}
|
||||
|
||||
// log instructions
|
||||
@@ -193,6 +193,11 @@ module.exports = class Creator extends EventEmitter {
|
||||
generator.printExitLogs()
|
||||
}
|
||||
|
||||
run (command, args) {
|
||||
if (!args) { [command, ...args] = command.split(/\s+/) }
|
||||
return execa(command, args, { cwd: this.context })
|
||||
}
|
||||
|
||||
async promptAndResolvePreset (answers = null) {
|
||||
// prompt
|
||||
if (!answers) {
|
||||
@@ -398,4 +403,23 @@ module.exports = class Creator extends EventEmitter {
|
||||
debug('vue-cli:prompts')(prompts)
|
||||
return prompts
|
||||
}
|
||||
|
||||
async shouldInitGit (cliOptions) {
|
||||
if (!hasGit()) {
|
||||
return false
|
||||
}
|
||||
if (cliOptions.git) {
|
||||
return cliOptions.git !== 'false'
|
||||
}
|
||||
// check if we are in a git repo already
|
||||
try {
|
||||
await this.run('git', ['status'])
|
||||
} catch (e) {
|
||||
// if git status failed, let's create a fresh repo
|
||||
return true
|
||||
}
|
||||
// if git status worked, it means we are already in a git repo
|
||||
// so don't init again.
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ const resolve = require('resolve')
|
||||
const isBinary = require('isbinaryfile')
|
||||
const yaml = require('yaml-front-matter')
|
||||
const mergeDeps = require('./util/mergeDeps')
|
||||
const stringifyJS = require('javascript-stringify')
|
||||
const { getPluginLink, toShortPluginId } = require('@vue/cli-shared-utils')
|
||||
|
||||
const isString = val => typeof val === 'string'
|
||||
@@ -191,6 +192,13 @@ class GeneratorAPI {
|
||||
exitLog (msg, type = 'log') {
|
||||
this.generator.exitLogs.push({ id: this.id, msg, type })
|
||||
}
|
||||
|
||||
/**
|
||||
* convenience method for generating a js config file from json
|
||||
*/
|
||||
genJSConfig (value) {
|
||||
return `module.exports = ${stringifyJS(value, null, 2)}`
|
||||
}
|
||||
}
|
||||
|
||||
function extractCallDir () {
|
||||
|
||||
@@ -10,6 +10,10 @@ const { error, stopSpinner, exit } = require('@vue/cli-shared-utils')
|
||||
const validateProjectName = require('validate-npm-package-name')
|
||||
|
||||
async function create (projectName, options) {
|
||||
if (options.proxy) {
|
||||
process.env.HTTP_PROXY = options.proxy
|
||||
}
|
||||
|
||||
const inCurrent = projectName === '.'
|
||||
const name = inCurrent ? path.relative('../', process.cwd()) : projectName
|
||||
const targetDir = path.resolve(projectName || '.')
|
||||
|
||||
@@ -3,7 +3,7 @@ const path = require('path')
|
||||
const execa = require('execa')
|
||||
const resolve = require('resolve')
|
||||
|
||||
module.exports = function inspect (paths, mode) {
|
||||
module.exports = function inspect (paths, args) {
|
||||
const cwd = process.cwd()
|
||||
let servicePath
|
||||
try {
|
||||
@@ -18,7 +18,8 @@ module.exports = function inspect (paths, mode) {
|
||||
execa('node', [
|
||||
binPath,
|
||||
'inspect',
|
||||
...(mode ? ['--mode', mode] : []),
|
||||
...(args.mode ? ['--mode', args.mode] : []),
|
||||
...(args.verbose ? ['--verbose'] : []),
|
||||
...paths
|
||||
], { cwd, stdio: 'inherit' })
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ test('should pass', async () => {
|
||||
moduleToTest,
|
||||
expectedPrompts,
|
||||
expectedOptions,
|
||||
{ plguinsOnly: true }
|
||||
{ pluginsOnly: true }
|
||||
)
|
||||
})
|
||||
|
||||
@@ -49,6 +49,6 @@ test('should not include the plugin if ts is also present', async () => {
|
||||
[mockTSModule, moduleToTest],
|
||||
expectedPrompts,
|
||||
expectedOptions,
|
||||
{ plguinsOnly: true }
|
||||
{ pluginsOnly: true }
|
||||
)
|
||||
})
|
||||
|
||||
@@ -28,6 +28,6 @@ test('CSS pre-processor ', async () => {
|
||||
moduleToTest,
|
||||
expectedPrompts,
|
||||
expectedOptions,
|
||||
{ plguinsOnly: true }
|
||||
{ pluginsOnly: true }
|
||||
)
|
||||
})
|
||||
|
||||
@@ -29,7 +29,7 @@ test('cypress', async () => {
|
||||
moduleToTest,
|
||||
expectedPrompts,
|
||||
expectedOptions,
|
||||
{ plguinsOnly: true }
|
||||
{ pluginsOnly: true }
|
||||
)
|
||||
})
|
||||
|
||||
@@ -57,6 +57,6 @@ test('nightwatch', async () => {
|
||||
moduleToTest,
|
||||
expectedPrompts,
|
||||
expectedOptions,
|
||||
{ plguinsOnly: true }
|
||||
{ pluginsOnly: true }
|
||||
)
|
||||
})
|
||||
|
||||
@@ -37,7 +37,7 @@ test('base', async () => {
|
||||
moduleToTest,
|
||||
expectedPrompts,
|
||||
expectedOptions,
|
||||
{ plguinsOnly: true }
|
||||
{ pluginsOnly: true }
|
||||
)
|
||||
})
|
||||
|
||||
@@ -69,7 +69,7 @@ test('airbnb', async () => {
|
||||
moduleToTest,
|
||||
expectedPrompts,
|
||||
expectedOptions,
|
||||
{ plguinsOnly: true }
|
||||
{ pluginsOnly: true }
|
||||
)
|
||||
})
|
||||
|
||||
@@ -101,7 +101,7 @@ test('standard', async () => {
|
||||
moduleToTest,
|
||||
expectedPrompts,
|
||||
expectedOptions,
|
||||
{ plguinsOnly: true }
|
||||
{ pluginsOnly: true }
|
||||
)
|
||||
})
|
||||
|
||||
@@ -133,6 +133,6 @@ test('prettier', async () => {
|
||||
moduleToTest,
|
||||
expectedPrompts,
|
||||
expectedOptions,
|
||||
{ plguinsOnly: true }
|
||||
{ pluginsOnly: true }
|
||||
)
|
||||
})
|
||||
|
||||
@@ -24,6 +24,6 @@ test('pwa', async () => {
|
||||
moduleToTest,
|
||||
expectedPrompts,
|
||||
expectedOptions,
|
||||
{ plguinsOnly: true }
|
||||
{ pluginsOnly: true }
|
||||
)
|
||||
})
|
||||
|
||||
@@ -23,6 +23,6 @@ test('router', async () => {
|
||||
moduleToTest,
|
||||
expectedPrompts,
|
||||
expectedOptions,
|
||||
{ plguinsOnly: true }
|
||||
{ pluginsOnly: true }
|
||||
)
|
||||
})
|
||||
|
||||
@@ -48,7 +48,7 @@ test('with TSLint', async () => {
|
||||
[moduleToTest, linterModule],
|
||||
expectedPrompts,
|
||||
expectedOptions,
|
||||
{ plguinsOnly: true }
|
||||
{ pluginsOnly: true }
|
||||
)
|
||||
})
|
||||
|
||||
@@ -96,6 +96,6 @@ test('with ESLint', async () => {
|
||||
[moduleToTest, linterModule],
|
||||
expectedPrompts,
|
||||
expectedOptions,
|
||||
{ plguinsOnly: true }
|
||||
{ pluginsOnly: true }
|
||||
)
|
||||
})
|
||||
|
||||
@@ -29,7 +29,7 @@ test('mocha', async () => {
|
||||
moduleToTest,
|
||||
expectedPrompts,
|
||||
expectedOptions,
|
||||
{ plguinsOnly: true }
|
||||
{ pluginsOnly: true }
|
||||
)
|
||||
})
|
||||
|
||||
@@ -57,6 +57,6 @@ test('jest', async () => {
|
||||
moduleToTest,
|
||||
expectedPrompts,
|
||||
expectedOptions,
|
||||
{ plguinsOnly: true }
|
||||
{ pluginsOnly: true }
|
||||
)
|
||||
})
|
||||
|
||||
@@ -23,6 +23,6 @@ test('vuex', async () => {
|
||||
moduleToTest,
|
||||
expectedPrompts,
|
||||
expectedOptions,
|
||||
{ plguinsOnly: true }
|
||||
{ pluginsOnly: true }
|
||||
)
|
||||
})
|
||||
|
||||
@@ -35,11 +35,20 @@ function makeJSONTransform (filename) {
|
||||
}
|
||||
}
|
||||
|
||||
function makeMutliExtensionJSONTransform (filename) {
|
||||
function makeMutliExtensionJSONTransform (filename, preferJS) {
|
||||
return function transformToMultiExtensions (value, checkExisting, context) {
|
||||
if (!checkExisting) {
|
||||
return makeJSONTransform(filename)(value, checkExisting, context)
|
||||
function defaultTransform () {
|
||||
if (preferJS) {
|
||||
return makeJSTransform(`${filename}.js`)(value, false, context)
|
||||
} else {
|
||||
return makeJSONTransform(filename)(value, false, context)
|
||||
}
|
||||
}
|
||||
|
||||
if (!checkExisting) {
|
||||
return defaultTransform()
|
||||
}
|
||||
|
||||
const absolutePath = path.resolve(context, filename)
|
||||
if (fs.existsSync(absolutePath)) {
|
||||
return makeJSONTransform(filename)(value, checkExisting, context)
|
||||
@@ -52,7 +61,7 @@ function makeMutliExtensionJSONTransform (filename) {
|
||||
} else if (fs.existsSync(`${absolutePath}.yml`)) {
|
||||
return transformYAML(value, `${filename}.yml`, fs.readFileSync(`${absolutePath}.yml`, 'utf-8'))
|
||||
} else {
|
||||
return makeJSONTransform(filename)(value, false, context)
|
||||
return defaultTransform()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -69,7 +78,7 @@ function transformYAML (value, filename, source) {
|
||||
module.exports = {
|
||||
vue: makeJSTransform('vue.config.js'),
|
||||
babel: makeJSONTransform('.babelrc'),
|
||||
postcss: makeMutliExtensionJSONTransform('.postcssrc'),
|
||||
eslintConfig: makeMutliExtensionJSONTransform('.eslintrc'),
|
||||
postcss: makeMutliExtensionJSONTransform('.postcssrc', true),
|
||||
eslintConfig: makeMutliExtensionJSONTransform('.eslintrc', true),
|
||||
jest: makeJSTransform('jest.config.js')
|
||||
}
|
||||
|
||||
@@ -7,8 +7,13 @@ module.exports = function resolveDeps (generatorId, to, from, sources) {
|
||||
const r1 = to[name]
|
||||
const r2 = from[name]
|
||||
const sourceGeneratorId = sources[name]
|
||||
const isValidURI = r2.match(/^(?:file|git|git\+ssh|git\+http|git\+https|git\+file|https?):/) != null
|
||||
const isValidGitHub = r2.match(/^[^/]+\/[^/]+/) != null
|
||||
|
||||
if (!semver.validRange(r2)) {
|
||||
// if they are the same, do nothing. Helps when non semver type deps are used
|
||||
if (r1 === r2) continue
|
||||
|
||||
if (!isValidGitHub && !isValidURI && !semver.validRange(r2)) {
|
||||
warn(
|
||||
`invalid version range for dependency "${name}":\n\n` +
|
||||
`- ${r2} injected by generator "${generatorId}"`
|
||||
@@ -20,17 +25,19 @@ module.exports = function resolveDeps (generatorId, to, from, sources) {
|
||||
res[name] = r2
|
||||
sources[name] = generatorId
|
||||
} else {
|
||||
const r = tryGetNewerRange(r1, r2)
|
||||
const r1semver = extractSemver(r1)
|
||||
const r2semver = extractSemver(r2)
|
||||
const r = tryGetNewerRange(r1semver, r2semver)
|
||||
const didGetNewer = !!r
|
||||
// if failed to infer newer version, use existing one because it's likely
|
||||
// built-in
|
||||
res[name] = didGetNewer ? r : r1
|
||||
res[name] = didGetNewer ? injectSemver(r2, r) : r1
|
||||
// if changed, update source
|
||||
if (res[name] === r2) {
|
||||
sources[name] = generatorId
|
||||
}
|
||||
// warn incompatible version requirements
|
||||
if (!semver.intersects(r1, r2)) {
|
||||
if (!semver.validRange(r1semver) || !semver.validRange(r2semver) || !semver.intersects(r1semver, r2semver)) {
|
||||
warn(
|
||||
`conflicting versions for project dependency "${name}":\n\n` +
|
||||
`- ${r1} injected by generator "${sourceGeneratorId}"\n` +
|
||||
@@ -45,6 +52,8 @@ module.exports = function resolveDeps (generatorId, to, from, sources) {
|
||||
|
||||
const leadRE = /^(~|\^|>=?)/
|
||||
const rangeToVersion = r => r.replace(leadRE, '').replace(/x/g, '0')
|
||||
const extractSemver = r => r.replace(/^.+#semver:/, '')
|
||||
const injectSemver = (r, v) => semver.validRange(r) ? v : r.replace(/#semver:.+$/, `#semver:${v}`)
|
||||
|
||||
function tryGetNewerRange (r1, r2) {
|
||||
const v1 = rangeToVersion(r1)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@vue/cli",
|
||||
"version": "3.0.0-beta.7",
|
||||
"version": "3.0.0-beta.9",
|
||||
"description": "Command line interface for rapid Vue.js development",
|
||||
"bin": {
|
||||
"vue": "bin/vue.js"
|
||||
@@ -27,10 +27,13 @@
|
||||
"access": "public"
|
||||
},
|
||||
"dependencies": {
|
||||
"@vue/cli-shared-utils": "^3.0.0-beta.7",
|
||||
"@vue/cli-shared-utils": "^3.0.0-beta.9",
|
||||
"@vue/cli-ui": "^3.0.0-beta.9",
|
||||
"@vue/cli-ui-addon-webpack": "^3.0.0-beta.9",
|
||||
"chalk": "^2.3.0",
|
||||
"commander": "^2.12.2",
|
||||
"debug": "^3.1.0",
|
||||
"deepmerge": "^2.0.1",
|
||||
"download-git-repo": "^1.0.2",
|
||||
"ejs": "^2.5.7",
|
||||
"execa": "^0.8.0",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@vue/eslint-config-airbnb",
|
||||
"version": "3.0.0-beta.7",
|
||||
"version": "3.0.0-beta.9",
|
||||
"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.7",
|
||||
"version": "3.0.0-beta.9",
|
||||
"description": "eslint-config-prettier for vue-cli",
|
||||
"main": "index.js",
|
||||
"publishConfig": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@vue/eslint-config-standard",
|
||||
"version": "3.0.0-beta.7",
|
||||
"version": "3.0.0-beta.9",
|
||||
"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.7",
|
||||
"version": "3.0.0-beta.9",
|
||||
"description": "eslint-config-typescript for vue-cli",
|
||||
"main": "index.js",
|
||||
"publishConfig": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "vue-cli-version-marker",
|
||||
"version": "3.0.0-beta.7",
|
||||
"version": "3.0.0-beta.9",
|
||||
"description": "version marker for @vue/cli",
|
||||
"author": "Evan You",
|
||||
"license": "MIT"
|
||||
|
||||
@@ -667,7 +667,7 @@
|
||||
"@babel/helper-plugin-utils" "7.0.0-beta.46"
|
||||
"@babel/plugin-transform-typescript" "7.0.0-beta.46"
|
||||
|
||||
"@babel/runtime@7.0.0-beta.46", "@babel/runtime@^7.0.0-beta.40":
|
||||
"@babel/runtime@7.0.0-beta.46", "@babel/runtime@^7.0.0-beta.38", "@babel/runtime@^7.0.0-beta.40":
|
||||
version "7.0.0-beta.46"
|
||||
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.0.0-beta.46.tgz#466a9c0498f6d12d054a185981eef742d59d4871"
|
||||
dependencies:
|
||||
@@ -841,6 +841,10 @@
|
||||
"@types/express-serve-static-core" "*"
|
||||
"@types/serve-static" "*"
|
||||
|
||||
"@types/graphql@0.12.6":
|
||||
version "0.12.6"
|
||||
resolved "https://registry.yarnpkg.com/@types/graphql/-/graphql-0.12.6.tgz#3d619198585fcabe5f4e1adfb5cf5f3388c66c13"
|
||||
|
||||
"@types/http-assert@*":
|
||||
version "1.2.2"
|
||||
resolved "https://registry.yarnpkg.com/@types/http-assert/-/http-assert-1.2.2.tgz#17dfe5a82184a8898935d96fe2eaedd37d22d9a4"
|
||||
@@ -909,11 +913,11 @@
|
||||
version "2.2.48"
|
||||
resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-2.2.48.tgz#3523b126a0b049482e1c3c11877460f76622ffab"
|
||||
|
||||
"@types/node@*", "@types/node@^9.3.0":
|
||||
version "9.6.6"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-9.6.6.tgz#439b91f9caf3983cad2eef1e11f6bedcbf9431d2"
|
||||
"@types/node@*":
|
||||
version "10.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-10.0.0.tgz#c40f8e07dce607d3ef25a626b93a6a7cdcf97881"
|
||||
|
||||
"@types/node@^9.4.6":
|
||||
"@types/node@^9.3.0", "@types/node@^9.4.6":
|
||||
version "9.6.7"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-9.6.7.tgz#5f3816d1db2155edcde1b2e3aa5d0e5c520cb564"
|
||||
|
||||
@@ -1217,6 +1221,14 @@ apollo-cache-control@^0.0.x:
|
||||
dependencies:
|
||||
graphql-extensions "^0.0.x"
|
||||
|
||||
apollo-cache-inmemory@^1.0.0:
|
||||
version "1.1.12"
|
||||
resolved "https://registry.yarnpkg.com/apollo-cache-inmemory/-/apollo-cache-inmemory-1.1.12.tgz#ab489bf046b3e026556ab28bdebb6e010cac9531"
|
||||
dependencies:
|
||||
apollo-cache "^1.1.7"
|
||||
apollo-utilities "^1.0.11"
|
||||
graphql-anywhere "^4.1.8"
|
||||
|
||||
apollo-cache-inmemory@^1.1.10:
|
||||
version "1.1.10"
|
||||
resolved "https://registry.yarnpkg.com/apollo-cache-inmemory/-/apollo-cache-inmemory-1.1.10.tgz#472442c6c59395159ae7d686ea33056248b26125"
|
||||
@@ -1231,6 +1243,26 @@ apollo-cache@^1.1.5:
|
||||
dependencies:
|
||||
apollo-utilities "^1.0.9"
|
||||
|
||||
apollo-cache@^1.1.7:
|
||||
version "1.1.7"
|
||||
resolved "https://registry.yarnpkg.com/apollo-cache/-/apollo-cache-1.1.7.tgz#5817018a2fbfc05a21ba319bd17a3e7538110cc5"
|
||||
dependencies:
|
||||
apollo-utilities "^1.0.11"
|
||||
|
||||
apollo-client@^2.0.1:
|
||||
version "2.2.8"
|
||||
resolved "https://registry.yarnpkg.com/apollo-client/-/apollo-client-2.2.8.tgz#b604d31ab2d2dd00db3105d8793b93ee02ce567e"
|
||||
dependencies:
|
||||
"@types/zen-observable" "^0.5.3"
|
||||
apollo-cache "^1.1.7"
|
||||
apollo-link "^1.0.0"
|
||||
apollo-link-dedup "^1.0.0"
|
||||
apollo-utilities "^1.0.11"
|
||||
symbol-observable "^1.0.2"
|
||||
zen-observable "^0.7.0"
|
||||
optionalDependencies:
|
||||
"@types/async" "2.0.47"
|
||||
|
||||
apollo-client@^2.2.6:
|
||||
version "2.2.6"
|
||||
resolved "https://registry.yarnpkg.com/apollo-client/-/apollo-client-2.2.6.tgz#38b5a197976f3c22b63623c455d4c4606e420b66"
|
||||
@@ -1272,6 +1304,12 @@ apollo-engine@^1.1.0:
|
||||
apollo-engine-binary-linux "0.2018.4-20-g7a8822c14"
|
||||
apollo-engine-binary-windows "0.2018.4-20-g7a8822c14"
|
||||
|
||||
apollo-link-context@^1.0.5:
|
||||
version "1.0.8"
|
||||
resolved "https://registry.yarnpkg.com/apollo-link-context/-/apollo-link-context-1.0.8.tgz#c967a56ac6ed32add748937735bcb57c5cc64c95"
|
||||
dependencies:
|
||||
apollo-link "^1.2.2"
|
||||
|
||||
apollo-link-dedup@^1.0.0:
|
||||
version "1.0.8"
|
||||
resolved "https://registry.yarnpkg.com/apollo-link-dedup/-/apollo-link-dedup-1.0.8.tgz#8c3028cf32557bd040ab6ba8856f38067bdacead"
|
||||
@@ -1284,6 +1322,19 @@ apollo-link-http-common@^0.2.3:
|
||||
dependencies:
|
||||
apollo-link "^1.2.1"
|
||||
|
||||
apollo-link-http-common@^0.2.4:
|
||||
version "0.2.4"
|
||||
resolved "https://registry.yarnpkg.com/apollo-link-http-common/-/apollo-link-http-common-0.2.4.tgz#877603f7904dc8f70242cac61808b1f8d034b2c3"
|
||||
dependencies:
|
||||
apollo-link "^1.2.2"
|
||||
|
||||
apollo-link-http@^1.0.0:
|
||||
version "1.5.4"
|
||||
resolved "https://registry.yarnpkg.com/apollo-link-http/-/apollo-link-http-1.5.4.tgz#b80b7b4b342c655b6a5614624b076a36be368f43"
|
||||
dependencies:
|
||||
apollo-link "^1.2.2"
|
||||
apollo-link-http-common "^0.2.4"
|
||||
|
||||
apollo-link-http@^1.5.3:
|
||||
version "1.5.3"
|
||||
resolved "https://registry.yarnpkg.com/apollo-link-http/-/apollo-link-http-1.5.3.tgz#3aa0d3ecfe5666ef0c360f359c425ff6ea1d285b"
|
||||
@@ -1291,6 +1342,13 @@ apollo-link-http@^1.5.3:
|
||||
apollo-link "^1.2.1"
|
||||
apollo-link-http-common "^0.2.3"
|
||||
|
||||
apollo-link-persisted-queries@^0.1.0:
|
||||
version "0.1.0"
|
||||
resolved "https://registry.yarnpkg.com/apollo-link-persisted-queries/-/apollo-link-persisted-queries-0.1.0.tgz#addc4b4f5b4755fb9909cd87685a8b50d7646d79"
|
||||
dependencies:
|
||||
apollo-link "^1.0.3"
|
||||
hash.js "^1.1.3"
|
||||
|
||||
apollo-link-state@^0.4.0:
|
||||
version "0.4.0"
|
||||
resolved "https://registry.yarnpkg.com/apollo-link-state/-/apollo-link-state-0.4.0.tgz#916dab5fa4ecc18d99dd9664b1d22476f4b280a6"
|
||||
@@ -1312,6 +1370,14 @@ apollo-link@^1.0.0, apollo-link@^1.1.0, apollo-link@^1.2.1:
|
||||
apollo-utilities "^1.0.0"
|
||||
zen-observable-ts "^0.8.6"
|
||||
|
||||
apollo-link@^1.0.3, apollo-link@^1.2.2:
|
||||
version "1.2.2"
|
||||
resolved "https://registry.yarnpkg.com/apollo-link/-/apollo-link-1.2.2.tgz#54c84199b18ac1af8d63553a68ca389c05217a03"
|
||||
dependencies:
|
||||
"@types/graphql" "0.12.6"
|
||||
apollo-utilities "^1.0.0"
|
||||
zen-observable-ts "^0.8.9"
|
||||
|
||||
apollo-server-core@^1.3.2:
|
||||
version "1.3.2"
|
||||
resolved "https://registry.yarnpkg.com/apollo-server-core/-/apollo-server-core-1.3.2.tgz#f36855a3ebdc2d77b8b9c454380bf1d706105ffc"
|
||||
@@ -1337,6 +1403,14 @@ apollo-tracing@^0.1.0:
|
||||
dependencies:
|
||||
graphql-extensions "^0.0.x"
|
||||
|
||||
apollo-upload-client@^7.0.0-alpha.4:
|
||||
version "7.1.0"
|
||||
resolved "https://registry.yarnpkg.com/apollo-upload-client/-/apollo-upload-client-7.1.0.tgz#13b48b24c6c5b454c6c62ee9c01726a6026ea0f4"
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.0.0-beta.40"
|
||||
apollo-link-http-common "^0.2.3"
|
||||
extract-files "^3.1.0"
|
||||
|
||||
apollo-upload-server@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/apollo-upload-server/-/apollo-upload-server-5.0.0.tgz#c953b523608313966e0c8444637f4ae8ef77d5bc"
|
||||
@@ -1349,6 +1423,10 @@ apollo-utilities@^1.0.0, apollo-utilities@^1.0.1, apollo-utilities@^1.0.6, apoll
|
||||
version "1.0.8"
|
||||
resolved "https://registry.yarnpkg.com/apollo-utilities/-/apollo-utilities-1.0.8.tgz#74d797d38953d2ba35e16f880326e2abcbc8b016"
|
||||
|
||||
apollo-utilities@^1.0.11:
|
||||
version "1.0.11"
|
||||
resolved "https://registry.yarnpkg.com/apollo-utilities/-/apollo-utilities-1.0.11.tgz#cd36bfa6e5c04eea2caf0c204a0f38a0ad550802"
|
||||
|
||||
apollo-utilities@^1.0.9:
|
||||
version "1.0.9"
|
||||
resolved "https://registry.yarnpkg.com/apollo-utilities/-/apollo-utilities-1.0.9.tgz#16f9f2f92fd6c651d497aba6f2747ce17d87d80a"
|
||||
@@ -1546,8 +1624,8 @@ asynckit@^0.4.0:
|
||||
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
|
||||
|
||||
atob@^2.0.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.0.tgz#ab2b150e51d7b122b9efc8d7340c06b6c41076bc"
|
||||
version "2.1.1"
|
||||
resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.1.tgz#ae2d5a729477f289d60dd7f96a6314a22dd6c22a"
|
||||
|
||||
atob@~1.1.0:
|
||||
version "1.1.3"
|
||||
@@ -1614,8 +1692,8 @@ babel-core@7.0.0-bridge.0:
|
||||
resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece"
|
||||
|
||||
babel-core@^6.0.0, babel-core@^6.26.0:
|
||||
version "6.26.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8"
|
||||
version "6.26.3"
|
||||
resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207"
|
||||
dependencies:
|
||||
babel-code-frame "^6.26.0"
|
||||
babel-generator "^6.26.0"
|
||||
@@ -1627,15 +1705,15 @@ babel-core@^6.0.0, babel-core@^6.26.0:
|
||||
babel-traverse "^6.26.0"
|
||||
babel-types "^6.26.0"
|
||||
babylon "^6.18.0"
|
||||
convert-source-map "^1.5.0"
|
||||
debug "^2.6.8"
|
||||
convert-source-map "^1.5.1"
|
||||
debug "^2.6.9"
|
||||
json5 "^0.5.1"
|
||||
lodash "^4.17.4"
|
||||
minimatch "^3.0.4"
|
||||
path-is-absolute "^1.0.1"
|
||||
private "^0.1.7"
|
||||
private "^0.1.8"
|
||||
slash "^1.0.0"
|
||||
source-map "^0.5.6"
|
||||
source-map "^0.5.7"
|
||||
|
||||
babel-eslint@^8.2.3:
|
||||
version "8.2.3"
|
||||
@@ -1721,8 +1799,8 @@ babel-plugin-syntax-object-rest-spread@^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"
|
||||
|
||||
babel-plugin-transform-es2015-modules-commonjs@^6.26.0:
|
||||
version "6.26.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a"
|
||||
version "6.26.2"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3"
|
||||
dependencies:
|
||||
babel-plugin-transform-strict-mode "^6.24.1"
|
||||
babel-runtime "^6.26.0"
|
||||
@@ -2050,8 +2128,8 @@ browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6:
|
||||
electron-to-chromium "^1.2.7"
|
||||
|
||||
browserslist@^3.0.0, browserslist@^3.2.4:
|
||||
version "3.2.5"
|
||||
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.5.tgz#aa46a5ea33b5330178f3c91cfd85e148fcb57080"
|
||||
version "3.2.6"
|
||||
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.6.tgz#138a44d04a9af64443679191d041f28ce5b965d5"
|
||||
dependencies:
|
||||
caniuse-lite "^1.0.30000830"
|
||||
electron-to-chromium "^1.3.42"
|
||||
@@ -2062,10 +2140,25 @@ bser@^2.0.0:
|
||||
dependencies:
|
||||
node-int64 "^0.4.0"
|
||||
|
||||
buffer-alloc-unsafe@^0.1.0:
|
||||
version "0.1.1"
|
||||
resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-0.1.1.tgz#ffe1f67551dd055737de253337bfe853dfab1a6a"
|
||||
|
||||
buffer-alloc@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.1.0.tgz#05514d33bf1656d3540c684f65b1202e90eca303"
|
||||
dependencies:
|
||||
buffer-alloc-unsafe "^0.1.0"
|
||||
buffer-fill "^0.1.0"
|
||||
|
||||
buffer-crc32@~0.2.3:
|
||||
version "0.2.13"
|
||||
resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
|
||||
|
||||
buffer-fill@^0.1.0:
|
||||
version "0.1.1"
|
||||
resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-0.1.1.tgz#76d825c4d6e50e06b7a31eb520c04d08cc235071"
|
||||
|
||||
buffer-from@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.0.0.tgz#4cb8832d23612589b0406e9e2956c17f06fdf531"
|
||||
@@ -2300,8 +2393,8 @@ chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3:
|
||||
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.3.2, chalk@^2.4.0:
|
||||
version "2.4.0"
|
||||
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.0.tgz#a060a297a6b57e15b61ca63ce84995daa0fe6e52"
|
||||
version "2.4.1"
|
||||
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e"
|
||||
dependencies:
|
||||
ansi-styles "^3.2.1"
|
||||
escape-string-regexp "^1.0.5"
|
||||
@@ -2462,8 +2555,8 @@ cliui@^4.0.0, cliui@^4.1.0:
|
||||
wrap-ansi "^2.0.0"
|
||||
|
||||
clone@2.x:
|
||||
version "2.1.2"
|
||||
resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f"
|
||||
version "2.1.1"
|
||||
resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.1.tgz#d217d1e961118e3ac9a4b8bba3285553bf647cdb"
|
||||
|
||||
clone@^1.0.2, clone@^1.0.4:
|
||||
version "1.0.4"
|
||||
@@ -2894,7 +2987,7 @@ conventional-recommended-bump@^1.2.1:
|
||||
meow "^3.3.0"
|
||||
object-assign "^4.0.1"
|
||||
|
||||
convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.5.0:
|
||||
convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.5.1:
|
||||
version "1.5.1"
|
||||
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5"
|
||||
|
||||
@@ -3755,8 +3848,8 @@ ejs@^2.5.7:
|
||||
resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.5.9.tgz#7ba254582a560d267437109a68354112475b0ce5"
|
||||
|
||||
electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.42:
|
||||
version "1.3.42"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.42.tgz#95c33bf01d0cc405556aec899fe61fd4d76ea0f9"
|
||||
version "1.3.44"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.44.tgz#ef6b150a60d523082388cadad88085ecd2fd4684"
|
||||
|
||||
elegant-spinner@^1.0.1:
|
||||
version "1.0.1"
|
||||
@@ -4009,6 +4102,13 @@ eslint-plugin-cypress@^2.0.1:
|
||||
dependencies:
|
||||
globals "^11.0.1"
|
||||
|
||||
eslint-plugin-graphql@^1.5.0:
|
||||
version "1.5.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-graphql/-/eslint-plugin-graphql-1.5.0.tgz#1f0861b6499906f7ce153f9e83633659e4374ef6"
|
||||
dependencies:
|
||||
graphql-config "~1.0.9"
|
||||
lodash "^4.11.1"
|
||||
|
||||
eslint-plugin-html@^4.0.1:
|
||||
version "4.0.3"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-html/-/eslint-plugin-html-4.0.3.tgz#97d52dcf9e22724505d02719fbd02754013c8a17"
|
||||
@@ -4389,6 +4489,12 @@ extglob@^2.0.4:
|
||||
snapdragon "^0.8.1"
|
||||
to-regex "^3.0.1"
|
||||
|
||||
extract-files@^3.1.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/extract-files/-/extract-files-3.1.0.tgz#b70424c9d4a1a4208efe22069388f428e4ae00f1"
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.0.0-beta.38"
|
||||
|
||||
extract-from-css@^0.4.4:
|
||||
version "0.4.4"
|
||||
resolved "https://registry.yarnpkg.com/extract-from-css/-/extract-from-css-0.4.4.tgz#1ea7df2e7c7c6eb9922fa08e8adaea486f6f8f92"
|
||||
@@ -4741,6 +4847,10 @@ from@~0:
|
||||
version "0.1.7"
|
||||
resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe"
|
||||
|
||||
fs-constants@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad"
|
||||
|
||||
fs-extra@4.0.1:
|
||||
version "4.0.1"
|
||||
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.1.tgz#7fc0c6c8957f983f57f306a24e5b9ddd8d0dd880"
|
||||
@@ -4791,8 +4901,8 @@ fs.realpath@^1.0.0:
|
||||
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
|
||||
|
||||
fsevents@^1.0.0, fsevents@^1.1.1, fsevents@^1.1.2:
|
||||
version "1.2.2"
|
||||
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.2.tgz#4f598f0f69b273188ef4a62ca4e9e08ace314bbf"
|
||||
version "1.2.3"
|
||||
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.3.tgz#08292982e7059f6674c93d8b829c1e8604979ac0"
|
||||
dependencies:
|
||||
nan "^2.9.2"
|
||||
node-pre-gyp "^0.9.0"
|
||||
@@ -5020,8 +5130,8 @@ global@^4.3.2:
|
||||
process "~0.5.1"
|
||||
|
||||
globals@^11.0.1, globals@^11.1.0:
|
||||
version "11.4.0"
|
||||
resolved "https://registry.yarnpkg.com/globals/-/globals-11.4.0.tgz#b85c793349561c16076a3c13549238a27945f1bc"
|
||||
version "11.5.0"
|
||||
resolved "https://registry.yarnpkg.com/globals/-/globals-11.5.0.tgz#6bc840de6771173b191f13d3a9c94d441ee92642"
|
||||
|
||||
globals@^9.18.0:
|
||||
version "9.18.0"
|
||||
@@ -5107,6 +5217,12 @@ graphql-anywhere@^4.1.6:
|
||||
dependencies:
|
||||
apollo-utilities "^1.0.9"
|
||||
|
||||
graphql-anywhere@^4.1.8:
|
||||
version "4.1.8"
|
||||
resolved "https://registry.yarnpkg.com/graphql-anywhere/-/graphql-anywhere-4.1.8.tgz#23882e6a16ec824febbe5bca40937cdd76c5acdc"
|
||||
dependencies:
|
||||
apollo-utilities "^1.0.11"
|
||||
|
||||
graphql-config@2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/graphql-config/-/graphql-config-2.0.0.tgz#daf69091055c6f675d63893a2d14c48f3fec3327"
|
||||
@@ -5117,6 +5233,16 @@ graphql-config@2.0.0:
|
||||
lodash "^4.17.4"
|
||||
minimatch "^3.0.4"
|
||||
|
||||
graphql-config@~1.0.9:
|
||||
version "1.0.9"
|
||||
resolved "https://registry.yarnpkg.com/graphql-config/-/graphql-config-1.0.9.tgz#8fa416a7c2bdb8f62f441324775dd3ff8a266652"
|
||||
dependencies:
|
||||
graphql "^0.11.7"
|
||||
graphql-request "^1.4.0"
|
||||
js-yaml "^3.10.0"
|
||||
minimatch "^3.0.4"
|
||||
rimraf "^2.6.2"
|
||||
|
||||
graphql-extensions@^0.0.x:
|
||||
version "0.0.8"
|
||||
resolved "https://registry.yarnpkg.com/graphql-extensions/-/graphql-extensions-0.0.8.tgz#d14d6e06db466a7f90fb97d75b657ae730278b09"
|
||||
@@ -5172,6 +5298,12 @@ graphql-type-json@^0.2.0:
|
||||
version "0.2.0"
|
||||
resolved "https://registry.yarnpkg.com/graphql-type-json/-/graphql-type-json-0.2.0.tgz#34c1a5fc2b7707a367c436482b253dbeebf1130e"
|
||||
|
||||
graphql@^0.11.7:
|
||||
version "0.11.7"
|
||||
resolved "https://registry.yarnpkg.com/graphql/-/graphql-0.11.7.tgz#e5abaa9cb7b7cccb84e9f0836bf4370d268750c6"
|
||||
dependencies:
|
||||
iterall "1.1.3"
|
||||
|
||||
graphql@^0.13.0, graphql@^0.13.1:
|
||||
version "0.13.1"
|
||||
resolved "https://registry.yarnpkg.com/graphql/-/graphql-0.13.1.tgz#9b3db3d8e40d1827e4172404bfdd2e4e17a58b55"
|
||||
@@ -5316,7 +5448,7 @@ hash-sum@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-1.0.2.tgz#33b40777754c6432573c120cc3808bbd10d47f04"
|
||||
|
||||
hash.js@^1.0.0, hash.js@^1.0.3:
|
||||
hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.3:
|
||||
version "1.1.3"
|
||||
resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846"
|
||||
dependencies:
|
||||
@@ -5577,8 +5709,8 @@ ignore-walk@^3.0.1:
|
||||
minimatch "^3.0.4"
|
||||
|
||||
ignore@^3.3.3, ignore@^3.3.5, ignore@^3.3.6:
|
||||
version "3.3.7"
|
||||
resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.7.tgz#612289bfb3c220e186a58118618d5be8c1bab021"
|
||||
version "3.3.8"
|
||||
resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.8.tgz#3f8e9c35d38708a3a7e0e9abb6c73e7ee7707b2b"
|
||||
|
||||
import-global@^0.1.0:
|
||||
version "0.1.0"
|
||||
@@ -6165,6 +6297,10 @@ isurl@^1.0.0-alpha5:
|
||||
has-to-string-tag-x "^1.2.0"
|
||||
is-object "^1.0.1"
|
||||
|
||||
iterall@1.1.3:
|
||||
version "1.1.3"
|
||||
resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.1.3.tgz#1cbbff96204056dde6656e2ed2e2226d0e6d72c9"
|
||||
|
||||
iterall@^1.1.3, iterall@^1.2.0, iterall@^1.2.1:
|
||||
version "1.2.2"
|
||||
resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.2.2.tgz#92d70deb8028e0c39ff3164fdbf4d8b088130cd7"
|
||||
@@ -6411,6 +6547,10 @@ jest-snapshot@^22.4.3:
|
||||
natural-compare "^1.4.0"
|
||||
pretty-format "^22.4.3"
|
||||
|
||||
jest-transform-stub@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/jest-transform-stub/-/jest-transform-stub-1.0.0.tgz#e4e941454f31a8bbc4db96b31f46a08b294372b1"
|
||||
|
||||
jest-util@^22.4.3:
|
||||
version "22.4.3"
|
||||
resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-22.4.3.tgz#c70fec8eec487c37b10b0809dc064a7ecf6aafac"
|
||||
@@ -7188,7 +7328,7 @@ lodash@4.17.4:
|
||||
version "4.17.4"
|
||||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
|
||||
|
||||
lodash@4.x, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0:
|
||||
lodash@4.x, lodash@^4.11.1, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0:
|
||||
version "4.17.10"
|
||||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7"
|
||||
|
||||
@@ -7719,8 +7859,8 @@ natural-compare@^1.4.0:
|
||||
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
|
||||
|
||||
needle@^2.2.0:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.0.tgz#f14efc69cee1024b72c8b21c7bdf94a731dc12fa"
|
||||
version "2.2.1"
|
||||
resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.1.tgz#b5e325bd3aae8c2678902fa296f729455d1d3a7d"
|
||||
dependencies:
|
||||
debug "^2.1.2"
|
||||
iconv-lite "^0.4.4"
|
||||
@@ -8764,7 +8904,7 @@ pretty@2.0.0:
|
||||
extend-shallow "^2.0.1"
|
||||
js-beautify "^1.6.12"
|
||||
|
||||
private@^0.1.6, private@^0.1.7, private@~0.1.5:
|
||||
private@^0.1.6, private@^0.1.8, private@~0.1.5:
|
||||
version "0.1.8"
|
||||
resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff"
|
||||
|
||||
@@ -9461,10 +9601,14 @@ rxjs@^5.0.0-beta.11, rxjs@^5.4.2:
|
||||
dependencies:
|
||||
symbol-observable "1.0.1"
|
||||
|
||||
safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
|
||||
safe-buffer@5.1.1:
|
||||
version "5.1.1"
|
||||
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
|
||||
|
||||
safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
|
||||
version "5.1.2"
|
||||
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
|
||||
|
||||
safe-regex@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
|
||||
@@ -10274,12 +10418,15 @@ tapable@^1.0.0:
|
||||
resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.0.0.tgz#cbb639d9002eed9c6b5975eb20598d7936f1f9f2"
|
||||
|
||||
tar-stream@^1.5.2:
|
||||
version "1.5.5"
|
||||
resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.5.5.tgz#5cad84779f45c83b1f2508d96b09d88c7218af55"
|
||||
version "1.6.0"
|
||||
resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.0.tgz#a50efaa7b17760b82c27b3cae4a301a8254a5715"
|
||||
dependencies:
|
||||
bl "^1.0.0"
|
||||
buffer-alloc "^1.1.0"
|
||||
end-of-stream "^1.0.0"
|
||||
fs-constants "^1.0.0"
|
||||
readable-stream "^2.0.0"
|
||||
to-buffer "^1.1.0"
|
||||
xtend "^4.0.0"
|
||||
|
||||
tar@^4:
|
||||
@@ -10427,6 +10574,10 @@ to-arraybuffer@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"
|
||||
|
||||
to-buffer@^1.1.0:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80"
|
||||
|
||||
to-fast-properties@^1.0.3:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47"
|
||||
@@ -10566,8 +10717,8 @@ tslint@^5.9.1:
|
||||
tsutils "^2.12.1"
|
||||
|
||||
tsutils@^2.12.1:
|
||||
version "2.26.1"
|
||||
resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.26.1.tgz#9e4a0cb9ff173863f34c22a961969081270d1878"
|
||||
version "2.26.2"
|
||||
resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.26.2.tgz#a9f9f63434a456a5e0c95a45d9a59181cb32d3bf"
|
||||
dependencies:
|
||||
tslib "^1.8.1"
|
||||
|
||||
@@ -10786,8 +10937,8 @@ unzip-response@^2.0.1:
|
||||
resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97"
|
||||
|
||||
upath@^1.0.0:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/upath/-/upath-1.0.4.tgz#ee2321ba0a786c50973db043a50b7bcba822361d"
|
||||
version "1.0.5"
|
||||
resolved "https://registry.yarnpkg.com/upath/-/upath-1.0.5.tgz#02cab9ecebe95bbec6d5fc2566325725ab6d1a73"
|
||||
|
||||
update-notifier@^2.3.0:
|
||||
version "2.3.0"
|
||||
@@ -10952,7 +11103,7 @@ vm-browserify@0.0.4:
|
||||
dependencies:
|
||||
indexof "0.0.1"
|
||||
|
||||
vue-apollo@^3.0.0-beta.5:
|
||||
vue-apollo@^3.0.0-alpha.1, vue-apollo@^3.0.0-beta.5:
|
||||
version "3.0.0-beta.5"
|
||||
resolved "https://registry.yarnpkg.com/vue-apollo/-/vue-apollo-3.0.0-beta.5.tgz#d0aabd19683e50cd1ab2d24e2827e8fb579ff78e"
|
||||
dependencies:
|
||||
@@ -10985,6 +11136,27 @@ vue-cli-plugin-apollo@^0.7.8:
|
||||
shortid "^2.2.8"
|
||||
subscriptions-transport-ws "^0.9.6"
|
||||
|
||||
vue-cli-plugin-apollo@^0.7.9:
|
||||
version "0.7.9"
|
||||
resolved "https://registry.yarnpkg.com/vue-cli-plugin-apollo/-/vue-cli-plugin-apollo-0.7.9.tgz#73db0c38ba24ca3caf49d958a8d3c431ed0ff037"
|
||||
dependencies:
|
||||
apollo-engine "^1.1.0"
|
||||
apollo-server-express "^1.3.2"
|
||||
apollo-upload-server "^5.0.0"
|
||||
body-parser "^1.18.2"
|
||||
cors "^2.8.4"
|
||||
cross-env "^5.1.4"
|
||||
express "^4.16.2"
|
||||
graphql "^0.13.1"
|
||||
graphql-playground-middleware-express "^1.5.7"
|
||||
graphql-subscriptions "^0.5.8"
|
||||
graphql-tools "^2.21.0"
|
||||
lowdb "^1.0.0"
|
||||
mkdirp "^0.5.1"
|
||||
nodemon "^1.17.1"
|
||||
shortid "^2.2.8"
|
||||
subscriptions-transport-ws "^0.9.6"
|
||||
|
||||
vue-cli@^2.9.2:
|
||||
version "2.9.3"
|
||||
resolved "https://registry.yarnpkg.com/vue-cli/-/vue-cli-2.9.3.tgz#c363ec48a7f55f72b76d90f44c001cc52d2fe0a8"
|
||||
@@ -11155,8 +11327,8 @@ watch@~0.18.0:
|
||||
minimist "^1.2.0"
|
||||
|
||||
watchpack@^1.4.0:
|
||||
version "1.5.0"
|
||||
resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.5.0.tgz#231e783af830a22f8966f65c4c4bacc814072eed"
|
||||
version "1.6.0"
|
||||
resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00"
|
||||
dependencies:
|
||||
chokidar "^2.0.2"
|
||||
graceful-fs "^4.1.2"
|
||||
@@ -11730,6 +11902,16 @@ zen-observable-ts@^0.8.6:
|
||||
dependencies:
|
||||
zen-observable "^0.7.0"
|
||||
|
||||
zen-observable-ts@^0.8.9:
|
||||
version "0.8.9"
|
||||
resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-0.8.9.tgz#d3c97af08c0afdca37ebcadf7cc3ee96bda9bab1"
|
||||
dependencies:
|
||||
zen-observable "^0.8.0"
|
||||
|
||||
zen-observable@^0.7.0:
|
||||
version "0.7.1"
|
||||
resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.7.1.tgz#f84075c0ee085594d3566e1d6454207f126411b3"
|
||||
|
||||
zen-observable@^0.8.0:
|
||||
version "0.8.8"
|
||||
resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.8.tgz#1ea93995bf098754a58215a1e0a7309e5749ec42"
|
||||
|
||||
Reference in New Issue
Block a user