From 8b912adfcdd7b5e527fa69321f3174b5768ff903 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E9=93=84=E8=BF=90?= Date: Tue, 6 Mar 2018 22:30:30 +0800 Subject: [PATCH 01/18] fix: get transformToRequire from vueOptions instead of options for template-compiler (#1175) --- lib/template-compiler/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/template-compiler/index.js b/lib/template-compiler/index.js index ede7b38a8..7b60c70af 100644 --- a/lib/template-compiler/index.js +++ b/lib/template-compiler/index.js @@ -14,7 +14,7 @@ module.exports = function (html) { const vueOptions = this._compilation.__vueOptions__ || {} const options = loaderUtils.getOptions(this) || {} const needsHotReload = !isServer && !isProduction && vueOptions.hotReload !== false - const defaultModules = [transformRequire(options.transformToRequire), transformSrcset()] + const defaultModules = [transformRequire(vueOptions.transformToRequire), transformSrcset()] const compilerOptions = { preserveWhitespace: vueOptions.preserveWhitespace, From 6cb3192c36a666ade3fbd596b2fe8efd05c07133 Mon Sep 17 00:00:00 2001 From: Vladimir Shushlin Date: Tue, 6 Mar 2018 17:33:52 +0300 Subject: [PATCH 02/18] docs: add link to Emacs vue-mode to syntax highlighting (#1102) --- docs/en/start/spec.md | 2 +- docs/ja/start/spec.md | 2 +- docs/kr/start/spec.md | 2 +- docs/pt_BR/start/spec.md | 2 +- docs/ru/start/spec.md | 2 +- docs/zh-cn/start/spec.md | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/en/start/spec.md b/docs/en/start/spec.md index 4e3dc582b..0e2ee0bb7 100644 --- a/docs/en/start/spec.md +++ b/docs/en/start/spec.md @@ -104,7 +104,7 @@ Beware that `src` imports follow the same path resolution rules to CommonJS `req ### Syntax Highlighting -Currently there is syntax highlighting support for [Sublime Text](https://github.com/vuejs/vue-syntax-highlight), [Atom](https://atom.io/packages/language-vue), [Vim](https://github.com/posva/vim-vue), [Visual Studio Code](https://marketplace.visualstudio.com/items/liuji-jim.vue), [Brackets](https://github.com/pandao/brackets-vue), and [JetBrains products](https://plugins.jetbrains.com/plugin/8057) (WebStorm, PhpStorm, etc). Contributions for other editors/IDEs are highly appreciated! If you are not using any pre-processors in Vue components, you can also get by treating `*.vue` files as HTML in your editor. +Currently there is syntax highlighting support for [Sublime Text](https://github.com/vuejs/vue-syntax-highlight), [Atom](https://atom.io/packages/language-vue), [Vim](https://github.com/posva/vim-vue), [Emacs](https://github.com/AdamNiederer/vue-mode), [Visual Studio Code](https://marketplace.visualstudio.com/items/liuji-jim.vue), [Brackets](https://github.com/pandao/brackets-vue), and [JetBrains products](https://plugins.jetbrains.com/plugin/8057) (WebStorm, PhpStorm, etc). Contributions for other editors/IDEs are highly appreciated! If you are not using any pre-processors in Vue components, you can also get by treating `*.vue` files as HTML in your editor. ### Comments diff --git a/docs/ja/start/spec.md b/docs/ja/start/spec.md index 52d65c081..9f25525e1 100644 --- a/docs/ja/start/spec.md +++ b/docs/ja/start/spec.md @@ -95,7 +95,7 @@ export default { ### シンタックスハイライト -現在それらはシンタクスハイライトをサポートしているのは、[Sublime Text](https://github.com/vuejs/vue-syntax-highlight), [Atom](https://atom.io/packages/language-vue), [Vim](https://github.com/posva/vim-vue), [Visual Studio Code](https://marketplace.visualstudio.com/items/liuji-jim.vue), [Brackets](https://github.com/pandao/brackets-vue), [JetBrains products](https://plugins.jetbrains.com/plugin/8057) (WebStorm, PhpStorm, etc). 他のエディタ/IDEへのコントリビュートは高く評価されます!もし Vue コンポーネント内でプリプロセッサを使用していない場合は、エディタで `*.vue` ファイルを HTML として扱うことが出来ます。 +現在それらはシンタクスハイライトをサポートしているのは、[Sublime Text](https://github.com/vuejs/vue-syntax-highlight), [Atom](https://atom.io/packages/language-vue), [Vim](https://github.com/posva/vim-vue), [Emacs](https://github.com/AdamNiederer/vue-mode), [Visual Studio Code](https://marketplace.visualstudio.com/items/liuji-jim.vue), [Brackets](https://github.com/pandao/brackets-vue), [JetBrains products](https://plugins.jetbrains.com/plugin/8057) (WebStorm, PhpStorm, etc). 他のエディタ/IDEへのコントリビュートは高く評価されます!もし Vue コンポーネント内でプリプロセッサを使用していない場合は、エディタで `*.vue` ファイルを HTML として扱うことが出来ます。 ### コメント diff --git a/docs/kr/start/spec.md b/docs/kr/start/spec.md index 14a498c7d..1c324aa7d 100644 --- a/docs/kr/start/spec.md +++ b/docs/kr/start/spec.md @@ -104,7 +104,7 @@ export default { ### 구문 강조 -현재 구문강조는 [Sublime Text](https://github.com/vuejs/vue-syntax-highlight), [Atom](https://atom.io/packages/language-vue), [Vim](https://github.com/posva/vim-vue), [Visual Studio Code](https://marketplace.visualstudio.com/items/liuji-jim.vue), [Brackets](https://github.com/pandao/brackets-vue), 와 [JetBrains 제품](https://plugins.jetbrains.com/plugin/8057) (WebStorm, PhpStorm, 등)을 지원합니다. 다른 편집기/IDE에 대한 기여를 원합니다! Vue 컴포넌트에서 프리 프로세서를 사용하지 않는 경우 `*.vue`파일을 HTML로 인식하여 사용할 수도 있습니다. +현재 구문강조는 [Sublime Text](https://github.com/vuejs/vue-syntax-highlight), [Atom](https://atom.io/packages/language-vue), [Vim](https://github.com/posva/vim-vue), [Emacs](https://github.com/AdamNiederer/vue-mode), [Visual Studio Code](https://marketplace.visualstudio.com/items/liuji-jim.vue), [Brackets](https://github.com/pandao/brackets-vue), 와 [JetBrains 제품](https://plugins.jetbrains.com/plugin/8057) (WebStorm, PhpStorm, 등)을 지원합니다. 다른 편집기/IDE에 대한 기여를 원합니다! Vue 컴포넌트에서 프리 프로세서를 사용하지 않는 경우 `*.vue`파일을 HTML로 인식하여 사용할 수도 있습니다. ### 주석 diff --git a/docs/pt_BR/start/spec.md b/docs/pt_BR/start/spec.md index b5f8d29b9..dcc563c66 100644 --- a/docs/pt_BR/start/spec.md +++ b/docs/pt_BR/start/spec.md @@ -103,7 +103,7 @@ As importações `src` também funcionam com blocos customizados, por exemplo: ### Realce de Sintaxe -Atualmente existem realce de sintaxe \(ou [coloração de sintaxe](https://pt.wikipedia.org/wiki/Realce_de_sintaxe)\) suportado para [Sublime Text](https://github.com/vuejs/vue-syntax-highlight), [Atom](https://atom.io/packages/language-vue), [Vim](https://github.com/posva/vim-vue), [Visual Studio Code](https://marketplace.visualstudio.com/items/liuji-jim.vue), [Brackets](https://github.com/pandao/brackets-vue), e [JetBrains products](https://plugins.jetbrains.com/plugin/8057) \(WebStorm, PhpStorm, etc\). Contribuições para outros editores/IDEs são incentivadas e muito bem-vindas! Se você não estiver usando nenhum pré-processador em componentes Vue, você também pode tratar arquivos `*.vue` como HTML em seu editor. +Atualmente existem realce de sintaxe \(ou [coloração de sintaxe](https://pt.wikipedia.org/wiki/Realce_de_sintaxe)\) suportado para [Sublime Text](https://github.com/vuejs/vue-syntax-highlight), [Atom](https://atom.io/packages/language-vue), [Vim](https://github.com/posva/vim-vue), [Emacs](https://github.com/AdamNiederer/vue-mode), [Visual Studio Code](https://marketplace.visualstudio.com/items/liuji-jim.vue), [Brackets](https://github.com/pandao/brackets-vue), e [JetBrains products](https://plugins.jetbrains.com/plugin/8057) \(WebStorm, PhpStorm, etc\). Contribuições para outros editores/IDEs são incentivadas e muito bem-vindas! Se você não estiver usando nenhum pré-processador em componentes Vue, você também pode tratar arquivos `*.vue` como HTML em seu editor. ### Comentários diff --git a/docs/ru/start/spec.md b/docs/ru/start/spec.md index 4353fb0f0..2fa123da1 100644 --- a/docs/ru/start/spec.md +++ b/docs/ru/start/spec.md @@ -104,7 +104,7 @@ export default { ### Подсветка синтаксиса -На данный момент есть поддержка подсвестки синтаксиса для [Sublime Text](https://github.com/vuejs/vue-syntax-highlight), [Atom](https://atom.io/packages/language-vue), [Vim](https://github.com/posva/vim-vue), [Visual Studio Code](https://marketplace.visualstudio.com/items/liuji-jim.vue), [Brackets](https://github.com/pandao/brackets-vue), и [продуктов JetBrains](https://plugins.jetbrains.com/plugin/8057) (WebStorm, PhpStorm, и т.п.). Будем рады видеть разработки и для других редакторов и IDE! Если вы не используете никаких пре-процессоров в компонентах Vue, вы также можете использовать синтаксис HTML в вашем редакторе для `*.vue` файлов. +На данный момент есть поддержка подсвестки синтаксиса для [Sublime Text](https://github.com/vuejs/vue-syntax-highlight), [Atom](https://atom.io/packages/language-vue), [Vim](https://github.com/posva/vim-vue), [Emacs](https://github.com/AdamNiederer/vue-mode), [Visual Studio Code](https://marketplace.visualstudio.com/items/liuji-jim.vue), [Brackets](https://github.com/pandao/brackets-vue), и [продуктов JetBrains](https://plugins.jetbrains.com/plugin/8057) (WebStorm, PhpStorm, и т.п.). Будем рады видеть разработки и для других редакторов и IDE! Если вы не используете никаких пре-процессоров в компонентах Vue, вы также можете использовать синтаксис HTML в вашем редакторе для `*.vue` файлов. ### Комментарии diff --git a/docs/zh-cn/start/spec.md b/docs/zh-cn/start/spec.md index ba4a47319..850afdbe1 100644 --- a/docs/zh-cn/start/spec.md +++ b/docs/zh-cn/start/spec.md @@ -105,7 +105,7 @@ export default { ### 语法高亮 -目前语法高亮支持 [Sublime Text](https://github.com/vuejs/vue-syntax-highlight)、[Atom](https://atom.io/packages/language-vue)、[Vim](https://github.com/posva/vim-vue)、[Visual Studio Code](https://marketplace.visualstudio.com/items/liuji-jim.vue)、[Brackets](https://github.com/pandao/brackets-vue) 和 [JetBrains products](https://plugins.jetbrains.com/plugin/8057) (WebStorm、PhpStorm 等)。非常感谢其他编辑器/IDE 所做的贡献!如果在 Vue 组件中没有使用任何预处理器,你可以把 `.vue` 文件当作 HTML 对待。 +目前语法高亮支持 [Sublime Text](https://github.com/vuejs/vue-syntax-highlight)、[Atom](https://atom.io/packages/language-vue)、[Vim](https://github.com/posva/vim-vue)、[Emacs](https://github.com/AdamNiederer/vue-mode)、[Visual Studio Code](https://marketplace.visualstudio.com/items/liuji-jim.vue)、[Brackets](https://github.com/pandao/brackets-vue) 和 [JetBrains products](https://plugins.jetbrains.com/plugin/8057) (WebStorm、PhpStorm 等)。非常感谢其他编辑器/IDE 所做的贡献!如果在 Vue 组件中没有使用任何预处理器,你可以把 `.vue` 文件当作 HTML 对待。 ### 注释 From 96635ead77d9673a5419c35ce3486f10a36bf003 Mon Sep 17 00:00:00 2001 From: Evan You Date: Tue, 6 Mar 2018 15:50:11 -0500 Subject: [PATCH 03/18] docs: note about esModule option removal --- docs/en/options.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/en/options.md b/docs/en/options.md index 601e1752a..9d22db3ee 100644 --- a/docs/en/options.md +++ b/docs/en/options.md @@ -163,6 +163,8 @@ module.exports = { ### esModule +> This option has been removed in v14.0. In v14.0 and above, `*.vue` files always expose ES modules. + - type: `boolean` - default: `true` (v13.0+) From 2c8d1fb501b4f97874031fd89a4a8beaf17cf6e9 Mon Sep 17 00:00:00 2001 From: Evan You Date: Tue, 6 Mar 2018 15:59:42 -0500 Subject: [PATCH 04/18] feat: avoid adding index to css modules in first diff --git a/test/test.js b/test/test.js index fe9ca5216..984dfafe3 100644 --- a/test/test.js +++ b/test/test.js @@ -488,6 +488,20 @@ describe('vue-loader', () => { }) }) + it('load cascading postcss config file', done => { + fs.writeFileSync('.postcssrc', JSON.stringify({ parser: 'sugarss' })) + test({ + entry: 'sub/postcss-cascade.vue', + vue: { postcss: { cascade: true }} + }, (window) => { + let style = window.document.querySelector('style').textContent + style = normalizeNewline(style) + expect(style).to.contain('display: -webkit-box') + fs.unlinkSync('.postcssrc') + done() + }) + }) + it('load postcss config file by path', done => { fs.writeFileSync('test/.postcssrc', JSON.stringify({ parser: 'sugarss' })) test({ From dfb60e035b7c750c620e62e52bbf8b3bed412c3e Mon Sep 17 00:00:00 2001 From: tomwang <174604588@qq.com> Date: Wed, 7 Mar 2018 05:17:25 +0800 Subject: [PATCH 06/18] docs: update asset-url.md (#1174) --- docs/en/configurations/asset-url.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/configurations/asset-url.md b/docs/en/configurations/asset-url.md index 5f9b1809b..cfded6aa1 100644 --- a/docs/en/configurations/asset-url.md +++ b/docs/en/configurations/asset-url.md @@ -23,7 +23,7 @@ createElement('img', { attrs: { src: require('../image.png') }}) - If the URL starts with `~`, anything after it is interpreted as a module request. This means you can even reference assets inside node modules: ``` html - + ``` - (13.7.0+) If the URL starts with `@`, it's also interpreted as a module request. This is useful if your webpack config has an alias for `@`, which by default points to `/src` in any project created by `vue-cli`. From ba83acf48e0390e5eb052d8739e46af7f38c12a6 Mon Sep 17 00:00:00 2001 From: Evan You Date: Tue, 6 Mar 2018 16:20:45 -0500 Subject: [PATCH 07/18] chore: ignore logs --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index e45d3c71e..b801020d2 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ docs/_book .DS_Store .idea *.iml +*.log From 88e93ec077cd4e2f15a35272ec42aee0ffee8360 Mon Sep 17 00:00:00 2001 From: Evan You Date: Tue, 6 Mar 2018 16:20:50 -0500 Subject: [PATCH 08/18] test: fix css modules test --- test/test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test.js b/test/test.js index 984dfafe3..fa1236296 100644 --- a/test/test.js +++ b/test/test.js @@ -618,7 +618,7 @@ describe('vue-loader', () => { }) } // default localIdentName - testWithIdent(undefined, /^\w{23}/, () => { + testWithIdent(undefined, /^\w{22}/, () => { // specified localIdentName const ident = '[path][name]---[local]---[hash:base64:5]' const regex = /css-modules---red---\w{5}/ From 65de872e79748020982af704af97b3474075f8af Mon Sep 17 00:00:00 2001 From: Evan You Date: Tue, 6 Mar 2018 16:32:39 -0500 Subject: [PATCH 09/18] workflow: auto generate release note --- .gitignore | 1 + package.json | 4 +- yarn.lock | 603 +++++++++++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 589 insertions(+), 19 deletions(-) diff --git a/.gitignore b/.gitignore index b801020d2..a7d34f090 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ docs/_book .idea *.iml *.log +RELEASE.md diff --git a/package.json b/package.json index b23aaa5f2..d739a3089 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,8 @@ "lint": "eslint lib test --fix", "test": "eslint lib && mocha --slow 5000 --timeout 10000", "docs": "cd docs && gitbook install && gitbook serve", - "docs:deploy": "bash ./docs/deploy.sh" + "docs:deploy": "bash ./docs/deploy.sh", + "postpublish": "conventional-changelog -p angular -r 2 > RELEASE.md" }, "gitHooks": { "pre-commit": "lint-staged" @@ -68,6 +69,7 @@ "chai": "^4.1.0", "coffee-loader": "^0.7.2", "coffee-script": "^1.12.7", + "conventional-changelog": "^1.1.18", "css-loader": "^0.28.4", "eslint": "^3.19.0", "eslint-plugin-vue-libs": "^1.2.0", diff --git a/yarn.lock b/yarn.lock index 515ec62a4..5ac9be957 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,13 @@ # yarn lockfile v1 +JSONStream@^1.0.4: + version "1.3.2" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.2.tgz#c102371b6ec3a7cf3b847ca00c20bb0fce4c6dea" + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + abab@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.4.tgz#5faad9c2c07f60dd76770f71cf025b62a63cfd4e" @@ -102,6 +109,12 @@ ansi-styles@^3.1.0, ansi-styles@^3.2.0: dependencies: color-convert "^1.9.0" +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + dependencies: + color-convert "^1.9.0" + anymatch@^1.3.0: version "1.3.2" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" @@ -144,6 +157,14 @@ array-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" +array-find-index@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + +array-ify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" + array-union@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" @@ -158,7 +179,7 @@ array-unique@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" -arrify@^1.0.0: +arrify@^1.0.0, arrify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" @@ -200,6 +221,10 @@ async-each@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" +async@^1.4.0: + version "1.5.2" + resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + async@^2.1.2, async@^2.4.1: version "2.6.0" resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4" @@ -221,6 +246,17 @@ autoprefixer@^6.3.1: postcss "^5.2.16" postcss-value-parser "^3.2.3" +autoprefixer@^7.2.5: + version "7.2.6" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-7.2.6.tgz#256672f86f7c735da849c4f07d008abb056067dc" + dependencies: + browserslist "^2.11.3" + caniuse-lite "^1.0.30000805" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^6.0.17" + postcss-value-parser "^3.2.3" + aws-sign2@~0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" @@ -839,7 +875,7 @@ browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6: caniuse-db "^1.0.30000639" electron-to-chromium "^1.2.7" -browserslist@^2.1.2: +browserslist@^2.1.2, browserslist@^2.11.3: version "2.11.3" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.11.3.tgz#fe36167aed1bbcde4827ebfe71347a2cc70b99b2" dependencies: @@ -876,10 +912,29 @@ callsites@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" +camelcase-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" + dependencies: + camelcase "^2.0.0" + map-obj "^1.0.0" + +camelcase-keys@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77" + dependencies: + camelcase "^4.1.0" + map-obj "^2.0.0" + quick-lru "^1.0.0" + camelcase@^1.0.2: version "1.2.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" +camelcase@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" + camelcase@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" @@ -901,6 +956,10 @@ caniuse-lite@^1.0.30000792: version "1.0.30000792" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000792.tgz#d0cea981f8118f3961471afbb43c9a1e5bbf0332" +caniuse-lite@^1.0.30000805: + version "1.0.30000813" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000813.tgz#7b25e27fdfb8d133f3c932b01f77452140fcc6c9" + caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" @@ -941,6 +1000,14 @@ chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0: escape-string-regexp "^1.0.5" supports-color "^4.0.0" +chalk@^2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.2.tgz#250dc96b07491bfd601e648d66ddf5f60c7a5c65" + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + character-parser@^2.1.1: version "2.2.0" resolved "https://registry.yarnpkg.com/character-parser/-/character-parser-2.2.0.tgz#c7ce28f36d4bcd9744e5ffc2c5fcde1c73261fc0" @@ -1119,6 +1186,13 @@ commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" +compare-func@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-1.3.2.tgz#99dd0ba457e1f9bc722b12c08ec33eeab31fa648" + dependencies: + array-ify "^1.0.0" + dot-prop "^3.0.0" + concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -1162,6 +1236,134 @@ content-type-parser@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/content-type-parser/-/content-type-parser-1.0.2.tgz#caabe80623e63638b2502fd4c7f12ff4ce2352e7" +conventional-changelog-angular@^1.6.6: + version "1.6.6" + resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-1.6.6.tgz#b27f2b315c16d0a1f23eb181309d0e6a4698ea0f" + dependencies: + compare-func "^1.3.1" + q "^1.5.1" + +conventional-changelog-atom@^0.2.4: + version "0.2.4" + resolved "https://registry.yarnpkg.com/conventional-changelog-atom/-/conventional-changelog-atom-0.2.4.tgz#4917759947f4db86073f9d3838a2d54302d5843d" + dependencies: + q "^1.5.1" + +conventional-changelog-codemirror@^0.3.4: + version "0.3.4" + resolved "https://registry.yarnpkg.com/conventional-changelog-codemirror/-/conventional-changelog-codemirror-0.3.4.tgz#debc43991d487d7964e65087fbbe034044bd51fb" + dependencies: + q "^1.5.1" + +conventional-changelog-core@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-2.0.5.tgz#45b6347c4c6512e1f163f7ff55c9f5bcb88fd990" + dependencies: + conventional-changelog-writer "^3.0.4" + conventional-commits-parser "^2.1.5" + dateformat "^3.0.0" + get-pkg-repo "^1.0.0" + git-raw-commits "^1.3.4" + git-remote-origin-url "^2.0.0" + git-semver-tags "^1.3.4" + lodash "^4.2.1" + normalize-package-data "^2.3.5" + q "^1.5.1" + read-pkg "^1.1.0" + read-pkg-up "^1.0.1" + through2 "^2.0.0" + +conventional-changelog-ember@^0.3.6: + version "0.3.6" + resolved "https://registry.yarnpkg.com/conventional-changelog-ember/-/conventional-changelog-ember-0.3.6.tgz#f3825d7434168f3d9211b5532dc1d5769532b668" + dependencies: + q "^1.5.1" + +conventional-changelog-eslint@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/conventional-changelog-eslint/-/conventional-changelog-eslint-1.0.5.tgz#8bae05ebbf574e6506caf7b37dc51ca21b74d220" + dependencies: + q "^1.5.1" + +conventional-changelog-express@^0.3.4: + version "0.3.4" + resolved "https://registry.yarnpkg.com/conventional-changelog-express/-/conventional-changelog-express-0.3.4.tgz#812a9cf778677e12f978ac9c40d85297c0bfcca9" + dependencies: + q "^1.5.1" + +conventional-changelog-jquery@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-jquery/-/conventional-changelog-jquery-0.1.0.tgz#0208397162e3846986e71273b6c79c5b5f80f510" + dependencies: + q "^1.4.1" + +conventional-changelog-jscs@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-jscs/-/conventional-changelog-jscs-0.1.0.tgz#0479eb443cc7d72c58bf0bcf0ef1d444a92f0e5c" + dependencies: + q "^1.4.1" + +conventional-changelog-jshint@^0.3.4: + version "0.3.4" + resolved "https://registry.yarnpkg.com/conventional-changelog-jshint/-/conventional-changelog-jshint-0.3.4.tgz#b2de33cd0870d9af804ac6a4fded0ee25b69c9bb" + dependencies: + compare-func "^1.3.1" + q "^1.5.1" + +conventional-changelog-preset-loader@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-1.1.6.tgz#b29af6332f9313857be36427623c9016bfeeaf33" + +conventional-changelog-writer@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-3.0.4.tgz#705b46a8b8277bd7fd79cad8032095b5d803864c" + dependencies: + compare-func "^1.3.1" + conventional-commits-filter "^1.1.5" + dateformat "^3.0.0" + handlebars "^4.0.2" + json-stringify-safe "^5.0.1" + lodash "^4.2.1" + meow "^4.0.0" + semver "^5.5.0" + split "^1.0.0" + through2 "^2.0.0" + +conventional-changelog@^1.1.18: + version "1.1.18" + resolved "https://registry.yarnpkg.com/conventional-changelog/-/conventional-changelog-1.1.18.tgz#ffe28798e4ddef5f6e2f74398e8248bcb233360b" + dependencies: + conventional-changelog-angular "^1.6.6" + conventional-changelog-atom "^0.2.4" + conventional-changelog-codemirror "^0.3.4" + conventional-changelog-core "^2.0.5" + conventional-changelog-ember "^0.3.6" + conventional-changelog-eslint "^1.0.5" + conventional-changelog-express "^0.3.4" + conventional-changelog-jquery "^0.1.0" + conventional-changelog-jscs "^0.1.0" + conventional-changelog-jshint "^0.3.4" + conventional-changelog-preset-loader "^1.1.6" + +conventional-commits-filter@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-1.1.5.tgz#77aac065e3de9c1a74b801e8e25c9affb3184f65" + dependencies: + is-subset "^0.1.1" + modify-values "^1.0.0" + +conventional-commits-parser@^2.1.5: + version "2.1.5" + resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-2.1.5.tgz#9ac3a4ab221c0c3c9e9dd2c09ae01e6d1e1dabe0" + dependencies: + JSONStream "^1.0.4" + is-text-path "^1.0.0" + lodash "^4.2.1" + meow "^4.0.0" + split2 "^2.0.0" + through2 "^2.0.0" + trim-off-newlines "^1.0.0" + convert-source-map@^1.5.0: version "1.5.1" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" @@ -1355,12 +1557,24 @@ cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": dependencies: cssom "0.3.x" +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + dependencies: + array-find-index "^1.0.1" + d@1: version "1.0.0" resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" dependencies: es5-ext "^0.10.9" +dargs@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/dargs/-/dargs-4.1.0.tgz#03a9dbb4b5c2f139bf14ae53f0b8a2a6a86f4e17" + dependencies: + number-is-nan "^1.0.0" + dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" @@ -1375,6 +1589,10 @@ date-now@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" +dateformat@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" + de-indent@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" @@ -1391,7 +1609,14 @@ debug@^2.1.1, debug@^2.2.0, debug@^2.6.8: dependencies: ms "2.0.0" -decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2: +decamelize-keys@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" + dependencies: + decamelize "^1.1.0" + map-obj "^1.0.0" + +decamelize@^1.0.0, decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" @@ -1504,6 +1729,12 @@ domutils@^1.5.1: dom-serializer "0" domelementtype "1" +dot-prop@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-3.0.0.tgz#1b708af094a49c9a0e7dbcad790aba539dac1177" + dependencies: + is-obj "^1.0.0" + ecc-jsbn@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" @@ -1553,7 +1784,7 @@ errno@^0.1.3: dependencies: prr "~1.0.1" -error-ex@^1.2.0: +error-ex@^1.2.0, error-ex@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" dependencies: @@ -1871,6 +2102,13 @@ find-cache-dir@^1.0.0: make-dir "^1.0.0" pkg-dir "^2.0.0" +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + find-up@^2.0.0, find-up@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" @@ -1987,6 +2225,20 @@ get-own-enumerable-property-symbols@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-2.0.1.tgz#5c4ad87f2834c4b9b4e84549dc1e0650fb38c24b" +get-pkg-repo@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz#c73b489c06d80cc5536c2c853f9e05232056972d" + dependencies: + hosted-git-info "^2.1.4" + meow "^3.3.0" + normalize-package-data "^2.3.0" + parse-github-repo-url "^1.3.0" + through2 "^2.0.0" + +get-stdin@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + get-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" @@ -1997,6 +2249,30 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" +git-raw-commits@^1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-1.3.4.tgz#442c3df5985b4f5689e9e43597f5194736aac001" + dependencies: + dargs "^4.0.1" + lodash.template "^4.0.2" + meow "^4.0.0" + split2 "^2.0.0" + through2 "^2.0.0" + +git-remote-origin-url@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz#5282659dae2107145a11126112ad3216ec5fa65f" + dependencies: + gitconfiglocal "^1.0.0" + pify "^2.3.0" + +git-semver-tags@^1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-1.3.4.tgz#2ceb2a355c6d7514c123c35e297067d08caf3a92" + dependencies: + meow "^4.0.0" + semver "^5.5.0" + gitbook-plugin-edit-link@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/gitbook-plugin-edit-link/-/gitbook-plugin-edit-link-2.0.2.tgz#d8fcd927eced81e7a662a72d59db609eafd7e72f" @@ -2009,6 +2285,12 @@ gitbook-plugin-theme-vuejs@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/gitbook-plugin-theme-vuejs/-/gitbook-plugin-theme-vuejs-1.1.0.tgz#dc779c8e58113440a55755c2470fc3912948a9cc" +gitconfiglocal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz#41d045f3851a5ea88f03f24ca1c6178114464b9b" + dependencies: + ini "^1.3.2" + glob-base@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" @@ -2071,6 +2353,16 @@ growl@1.10.3: version "1.10.3" resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.3.tgz#1926ba90cf3edfe2adb4927f5880bc22c66c790f" +handlebars@^4.0.2: + version "4.0.11" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.11.tgz#630a35dfe0294bc281edae6ffc5d329fc7982dcc" + dependencies: + async "^1.4.0" + optimist "^0.6.1" + source-map "^0.4.4" + optionalDependencies: + uglify-js "^2.6" + har-schema@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" @@ -2107,6 +2399,10 @@ has-flag@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + has-unicode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" @@ -2290,7 +2586,7 @@ inherits@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" -ini@~1.3.0: +ini@^1.3.2, ini@~1.3.0: version "1.3.5" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" @@ -2445,7 +2741,7 @@ is-number@^3.0.0: dependencies: kind-of "^3.0.2" -is-obj@^1.0.1: +is-obj@^1.0.0, is-obj@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" @@ -2465,7 +2761,7 @@ is-path-inside@^1.0.0: dependencies: path-is-inside "^1.0.1" -is-plain-obj@^1.0.0: +is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" @@ -2503,16 +2799,30 @@ is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" +is-subset@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6" + is-svg@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-2.1.0.tgz#cf61090da0d9efbcab8722deba6f032208dbb0e9" dependencies: html-comment-regex "^1.1.0" +is-text-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e" + dependencies: + text-extensions "^1.0.0" + is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -2610,6 +2920,10 @@ json-loader@^0.5.4: version "0.5.7" resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d" +json-parse-better-errors@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.1.tgz#50183cd1b2d25275de069e9e71b467ac9eab973a" + json-schema-traverse@^0.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" @@ -2624,7 +2938,7 @@ json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: dependencies: jsonify "~0.0.0" -json-stringify-safe@~5.0.1: +json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" @@ -2636,6 +2950,10 @@ jsonify@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" +jsonparse@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + jsonpointer@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" @@ -2756,6 +3074,16 @@ listr@^0.12.0: stream-to-observable "^0.1.0" strip-ansi "^3.0.1" +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + load-json-file@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" @@ -2765,6 +3093,15 @@ load-json-file@^2.0.0: pify "^2.0.0" strip-bom "^3.0.0" +load-json-file@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" + dependencies: + graceful-fs "^4.1.2" + parse-json "^4.0.0" + pify "^3.0.0" + strip-bom "^3.0.0" + loader-runner@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2" @@ -2800,7 +3137,7 @@ lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" -lodash.template@^4.4.0: +lodash.template@^4.0.2, lodash.template@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.4.0.tgz#e73a0385c8355591746e020b99679c690e68fba0" dependencies: @@ -2821,6 +3158,10 @@ lodash@^4.0.0, lodash@^4.14.0, lodash@^4.17.4, lodash@^4.3.0: version "4.17.4" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" +lodash@^4.2.1: + version "4.17.5" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511" + log-symbols@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" @@ -2850,6 +3191,13 @@ loose-envify@^1.0.0: dependencies: js-tokens "^3.0.0" +loud-rejection@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.0.0" + lru-cache@^4.0.1, lru-cache@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55" @@ -2867,6 +3215,14 @@ make-dir@^1.0.0: dependencies: pify "^3.0.0" +map-obj@^1.0.0, map-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + +map-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9" + marked@^0.3.12: version "0.3.12" resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.12.tgz#7cf25ff2252632f3fe2406bde258e94eee927519" @@ -2895,6 +3251,35 @@ memory-fs@^0.4.0, memory-fs@^0.4.1, memory-fs@~0.4.1: errno "^0.1.3" readable-stream "^2.0.1" +meow@^3.3.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" + dependencies: + camelcase-keys "^2.0.0" + decamelize "^1.1.2" + loud-rejection "^1.0.0" + map-obj "^1.0.1" + minimist "^1.1.3" + normalize-package-data "^2.3.4" + object-assign "^4.0.1" + read-pkg-up "^1.0.1" + redent "^1.0.0" + trim-newlines "^1.0.0" + +meow@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-4.0.0.tgz#fd5855dd008db5b92c552082db1c307cba20b29d" + dependencies: + camelcase-keys "^4.0.0" + decamelize-keys "^1.0.0" + loud-rejection "^1.0.0" + minimist "^1.1.3" + minimist-options "^3.0.1" + normalize-package-data "^2.3.4" + read-pkg-up "^3.0.0" + redent "^2.0.0" + trim-newlines "^2.0.0" + micromatch@^2.1.5: version "2.3.11" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" @@ -2952,14 +3337,25 @@ minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" +minimist-options@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-3.0.2.tgz#fba4c8191339e13ecf4d61beb03f070103f3d954" + dependencies: + arrify "^1.0.1" + is-plain-obj "^1.1.0" + minimist@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" -minimist@^1.2.0: +minimist@^1.1.3, minimist@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" +minimist@~0.0.1: + version "0.0.10" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + mkdirp@0.5.1, mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" @@ -2981,6 +3377,10 @@ mocha@^4.0.1: mkdirp "0.5.1" supports-color "4.4.0" +modify-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.0.tgz#e2b6cdeb9ce19f99317a53722f3dbf5df5eaaab2" + ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" @@ -3052,7 +3452,7 @@ normalize-newline@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-newline/-/normalize-newline-3.0.0.tgz#1cbea804aba436001f83938ab21ec039d69ae9d3" -normalize-package-data@^2.3.2: +normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.3.5: version "2.4.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" dependencies: @@ -3154,6 +3554,13 @@ onetime@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" +optimist@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" + dependencies: + minimist "~0.0.1" + wordwrap "~0.0.2" + optionator@^0.8.1, optionator@^0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" @@ -3239,6 +3646,10 @@ parse-asn1@^5.0.0: evp_bytestokey "^1.0.0" pbkdf2 "^3.0.3" +parse-github-repo-url@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/parse-github-repo-url/-/parse-github-repo-url-1.4.1.tgz#9e7d8bb252a6cb6ba42595060b7bf6df3dbc1f50" + parse-glob@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" @@ -3254,6 +3665,13 @@ parse-json@^2.2.0: dependencies: error-ex "^1.2.0" +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + parse5@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/parse5/-/parse5-1.5.1.tgz#9b7f3b0de32be78dc2401b17573ccaf0f6f59d94" @@ -3262,6 +3680,12 @@ path-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + dependencies: + pinkie-promise "^2.0.0" + path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" @@ -3282,12 +3706,26 @@ path-parse@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + path-type@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" dependencies: pify "^2.0.0" +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + dependencies: + pify "^3.0.0" + pathval@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" @@ -3310,7 +3748,7 @@ performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" -pify@^2.0.0: +pify@^2.0.0, pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -3607,6 +4045,14 @@ postcss@^6.0.1, postcss@^6.0.14, postcss@^6.0.8: source-map "^0.6.1" supports-color "^5.1.0" +postcss@^6.0.17: + version "6.0.19" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.19.tgz#76a78386f670b9d9494a655bf23ac012effd1555" + dependencies: + chalk "^2.3.1" + source-map "^0.6.1" + supports-color "^5.2.0" + prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" @@ -3638,6 +4084,10 @@ process-nextick-args@~1.0.6: version "1.0.7" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" +process-nextick-args@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" + process@^0.11.10: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" @@ -3771,7 +4221,7 @@ punycode@^1.2.4, punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" -q@^1.1.2: +q@^1.1.2, q@^1.4.1, q@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" @@ -3798,6 +4248,10 @@ querystring@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" +quick-lru@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" + randomatic@^1.1.3: version "1.1.7" resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" @@ -3831,6 +4285,13 @@ rc@^1.1.7: minimist "^1.2.0" strip-json-comments "~2.0.1" +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + read-pkg-up@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" @@ -3838,6 +4299,21 @@ read-pkg-up@^2.0.0: find-up "^2.0.0" read-pkg "^2.0.0" +read-pkg-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" + dependencies: + find-up "^2.0.0" + read-pkg "^3.0.0" + +read-pkg@^1.0.0, read-pkg@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + read-pkg@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" @@ -3846,6 +4322,14 @@ read-pkg@^2.0.0: normalize-package-data "^2.3.2" path-type "^2.0.0" +read-pkg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" + dependencies: + load-json-file "^4.0.0" + normalize-package-data "^2.3.2" + path-type "^3.0.0" + readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.2, readable-stream@^2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" @@ -3858,6 +4342,18 @@ readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable string_decoder "~1.0.3" util-deprecate "~1.0.1" +readable-stream@^2.1.5: + version "2.3.5" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.5.tgz#b4f85003a938cbb6ecbce2a124fb1012bd1a838d" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.0.3" + util-deprecate "~1.0.1" + readdirp@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" @@ -3881,6 +4377,20 @@ rechoir@^0.6.2: dependencies: resolve "^1.1.6" +redent@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" + dependencies: + indent-string "^2.1.0" + strip-indent "^1.0.1" + +redent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-2.0.0.tgz#c1b2007b42d57eb1389079b3c8333639d5e1ccaa" + dependencies: + indent-string "^3.0.0" + strip-indent "^2.0.0" + reduce-css-calc@^1.2.6: version "1.3.0" resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716" @@ -4104,7 +4614,7 @@ schema-utils@^0.3.0: dependencies: ajv "^5.0.0" -"semver@2 || 3 || 4 || 5", semver@^5.3.0: +"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" @@ -4201,7 +4711,7 @@ source-map@0.1.x: dependencies: amdefine ">=0.0.4" -source-map@0.4.x: +source-map@0.4.x, source-map@^0.4.4: version "0.4.4" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" dependencies: @@ -4233,6 +4743,18 @@ spdx-license-ids@^1.0.2: version "1.2.2" resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" +split2@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/split2/-/split2-2.2.0.tgz#186b2575bcf83e85b7d18465756238ee4ee42493" + dependencies: + through2 "^2.0.2" + +split@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" + dependencies: + through "2" + sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" @@ -4325,6 +4847,12 @@ strip-ansi@^4.0.0: dependencies: ansi-regex "^3.0.0" +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + dependencies: + is-utf8 "^0.2.0" + strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -4333,6 +4861,12 @@ strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" +strip-indent@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" + dependencies: + get-stdin "^4.0.1" + strip-indent@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" @@ -4394,6 +4928,12 @@ supports-color@^5.1.0: dependencies: has-flag "^2.0.0" +supports-color@^5.2.0, supports-color@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.3.0.tgz#5b24ac15db80fa927cf5227a4a33fd3c4c7676c0" + dependencies: + has-flag "^3.0.0" + svgo@^0.7.0: version "0.7.2" resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5" @@ -4450,11 +4990,22 @@ tar@^2.2.1: fstream "^1.0.2" inherits "2" +text-extensions@^1.0.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.7.0.tgz#faaaba2625ed746d568a23e4d0aacd9bf08a8b39" + text-table@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" -through@^2.3.6: +through2@^2.0.0, through2@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" + dependencies: + readable-stream "^2.1.5" + xtend "~4.0.1" + +through@2, "through@>=2.2.7 <3", through@^2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" @@ -4486,6 +5037,18 @@ tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" +trim-newlines@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" + +trim-newlines@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-2.0.0.tgz#b403d0b91be50c331dfc4b82eeceb22c3de16d20" + +trim-off-newlines@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3" + trim-right@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" @@ -4518,7 +5081,7 @@ typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" -uglify-js@^2.6.1, uglify-js@^2.8.29: +uglify-js@^2.6, uglify-js@^2.6.1, uglify-js@^2.8.29: version "2.8.29" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" dependencies: @@ -4768,6 +5331,10 @@ wordwrap@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" +wordwrap@~0.0.2: + version "0.0.3" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" + wordwrap@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" @@ -4793,7 +5360,7 @@ xml-name-validator@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-2.0.1.tgz#4d8b8f1eccd3419aa362061becef515e1e559635" -xtend@^4.0.0: +xtend@^4.0.0, xtend@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" From 4b6c843e4a7ef4dd8957b2cfedb9e6ee3a5767e8 Mon Sep 17 00:00:00 2001 From: Evan You Date: Tue, 6 Mar 2018 22:20:54 -0500 Subject: [PATCH 10/18] chore: remove this.cacheable calls as it is true by default --- lib/loader.js | 2 -- lib/style-compiler/index.js | 1 - lib/template-compiler/index.js | 1 - lib/template-compiler/preprocessor.js | 1 - 4 files changed, 5 deletions(-) diff --git a/lib/loader.js b/lib/loader.js index 1cd2446e4..42ec97d1e 100644 --- a/lib/loader.js +++ b/lib/loader.js @@ -8,8 +8,6 @@ const hotReloadAPIPath = normalize.dep('vue-hot-reload-api') const componentNormalizerPath = normalize.lib('runtime/component-normalizer') module.exports = function (content) { - this.cacheable() - let output = '' const loaderContext = this diff --git a/lib/style-compiler/index.js b/lib/style-compiler/index.js index 8cc3e5a42..681473b28 100644 --- a/lib/style-compiler/index.js +++ b/lib/style-compiler/index.js @@ -6,7 +6,6 @@ const trim = require('./plugins/trim') const scopeId = require('./plugins/scope-id') module.exports = function (css, map) { - this.cacheable() const cb = this.async() const loaderOptions = loaderUtils.getOptions(this) || {} const inlineConfig = (this._compilation.__vueOptions__ || {}).postcss diff --git a/lib/template-compiler/index.js b/lib/template-compiler/index.js index 7b60c70af..0fdf6ea79 100644 --- a/lib/template-compiler/index.js +++ b/lib/template-compiler/index.js @@ -8,7 +8,6 @@ const transformRequire = require('./modules/transform-require') const transformSrcset = require('./modules/transform-srcset') module.exports = function (html) { - this.cacheable() const isServer = this.target === 'node' const isProduction = this.minimize || process.env.NODE_ENV === 'production' const vueOptions = this._compilation.__vueOptions__ || {} diff --git a/lib/template-compiler/preprocessor.js b/lib/template-compiler/preprocessor.js index 0ca6a4eaf..586f31411 100644 --- a/lib/template-compiler/preprocessor.js +++ b/lib/template-compiler/preprocessor.js @@ -4,7 +4,6 @@ const cons = require('consolidate') const loaderUtils = require('loader-utils') module.exports = function (content) { - this.cacheable && this.cacheable() const callback = this.async() const opt = loaderUtils.getOptions(this) || {} From 905b8131af2c47910d64f0cbf83946837f06ec8d Mon Sep 17 00:00:00 2001 From: Evan You Date: Tue, 6 Mar 2018 23:55:24 -0500 Subject: [PATCH 11/18] refactor: options cache without using this._compilation --- lib/helpers.js | 9 +++- lib/loader.js | 12 ++--- lib/selector.js | 1 - lib/style-compiler/index.js | 3 +- lib/template-compiler/index.js | 3 +- lib/template-compiler/preprocessor.js | 6 ++- lib/utils/options-cache.js | 77 +++++++++++++++++++++++++++ 7 files changed, 98 insertions(+), 13 deletions(-) create mode 100644 lib/utils/options-cache.js diff --git a/lib/helpers.js b/lib/helpers.js index 2c97ebc9c..dba93e06b 100644 --- a/lib/helpers.js +++ b/lib/helpers.js @@ -67,6 +67,7 @@ function ensureBang (loader) { } function resolveLoaders ( + optionsId, options, moduleId, isProduction, @@ -97,6 +98,7 @@ function resolveLoaders ( id: moduleId, hasScoped, hasComment, + optionsId, buble: bubleTemplateOptions }) @@ -142,6 +144,7 @@ function resolveLoaders ( } module.exports = function createHelpers ( + optionsId, loaderContext, options, moduleId, @@ -161,6 +164,7 @@ module.exports = function createHelpers ( preLoaders, postLoaders } = resolveLoaders( + optionsId, options, moduleId, isProduction, @@ -304,6 +308,7 @@ module.exports = function createHelpers ( '?' + JSON.stringify({ // a marker for vue-style-loader to know that this is an import from a vue file + optionsId, vue: true, id: moduleId, scoped: !!scoped, @@ -359,8 +364,8 @@ module.exports = function createHelpers ( defaultLoaders.html + '!' + templatePreprocessorPath + - '?engine=' + - lang + + `?engine=${lang}` + + `&optionsId=${optionsId}` + '!' ) case 'styles': diff --git a/lib/loader.js b/lib/loader.js index 42ec97d1e..0c29efaf8 100644 --- a/lib/loader.js +++ b/lib/loader.js @@ -4,6 +4,7 @@ const parse = require('./parser') const createHelpers = require('./helpers') const loaderUtils = require('loader-utils') const normalize = require('./utils/normalize') +const { saveOptions } = require('./utils/options-cache') const hotReloadAPIPath = normalize.dep('vue-hot-reload-api') const componentNormalizerPath = normalize.lib('runtime/component-normalizer') @@ -19,12 +20,10 @@ module.exports = function (content) { // enabled via vue-cli's --target web-component const isShadowMode = !!options.shadowMode - // share options between the main loader of style/template loaders - Object.defineProperty(this._compilation, '__vueOptions__', { - value: options, - enumerable: false, - configurable: true - }) + // share options between the main loader of style/template loaders. + // to support having multiple uses of vue-loader with different options, + // we cache and retrieve options for each unique options object. + const optionsId = saveOptions(options) const filePath = this.resourcePath const fileName = path.basename(filePath) @@ -68,6 +67,7 @@ module.exports = function (content) { getRequestString, getSrcRequestString } = createHelpers( + optionsId, loaderContext, options, moduleId, diff --git a/lib/selector.js b/lib/selector.js index e344d42e8..d528510a6 100644 --- a/lib/selector.js +++ b/lib/selector.js @@ -7,7 +7,6 @@ const parse = require('./parser') const loaderUtils = require('loader-utils') module.exports = function (content) { - this.cacheable() const query = loaderUtils.getOptions(this) || {} const context = (this._compiler && this._compiler.context) || this.options.context || process.cwd() let filename = path.basename(this.resourcePath) diff --git a/lib/style-compiler/index.js b/lib/style-compiler/index.js index 681473b28..a089184a2 100644 --- a/lib/style-compiler/index.js +++ b/lib/style-compiler/index.js @@ -1,5 +1,6 @@ const postcss = require('postcss') const loaderUtils = require('loader-utils') +const { loadOptions } = require('../utils/options-cache') const loadPostcssConfig = require('./load-postcss-config') const trim = require('./plugins/trim') @@ -8,7 +9,7 @@ const scopeId = require('./plugins/scope-id') module.exports = function (css, map) { const cb = this.async() const loaderOptions = loaderUtils.getOptions(this) || {} - const inlineConfig = (this._compilation.__vueOptions__ || {}).postcss + const inlineConfig = loadOptions(loaderOptions.optionsId).postcss loadPostcssConfig(this, inlineConfig) .then(config => { diff --git a/lib/template-compiler/index.js b/lib/template-compiler/index.js index 0fdf6ea79..973ea5b4b 100644 --- a/lib/template-compiler/index.js +++ b/lib/template-compiler/index.js @@ -2,6 +2,7 @@ const prettier = require('prettier') const loaderUtils = require('loader-utils') const normalize = require('../utils/normalize') const compiler = require('vue-template-compiler') +const { loadOptions } = require('../utils/options-cache') const transpile = require('vue-template-es2015-compiler') const hotReloadAPIPath = normalize.dep('vue-hot-reload-api') const transformRequire = require('./modules/transform-require') @@ -10,8 +11,8 @@ const transformSrcset = require('./modules/transform-srcset') module.exports = function (html) { const isServer = this.target === 'node' const isProduction = this.minimize || process.env.NODE_ENV === 'production' - const vueOptions = this._compilation.__vueOptions__ || {} const options = loaderUtils.getOptions(this) || {} + const vueOptions = loadOptions(options.optionsId) const needsHotReload = !isServer && !isProduction && vueOptions.hotReload !== false const defaultModules = [transformRequire(vueOptions.transformToRequire), transformSrcset()] diff --git a/lib/template-compiler/preprocessor.js b/lib/template-compiler/preprocessor.js index 586f31411..8b12de85d 100644 --- a/lib/template-compiler/preprocessor.js +++ b/lib/template-compiler/preprocessor.js @@ -2,6 +2,7 @@ const cons = require('consolidate') const loaderUtils = require('loader-utils') +const { loadOptions } = require('../utils/options-cache') module.exports = function (content) { const callback = this.async() @@ -19,8 +20,9 @@ module.exports = function (content) { } // allow passing options to the template preprocessor via `template` option - if (this._compilation.__vueOptions__) { - Object.assign(opt, this._compilation.__vueOptions__.template) + const vueOptions = loadOptions(opt.optionsId) + if (vueOptions.template) { + Object.assign(opt, vueOptions.template) } // for relative includes diff --git a/lib/utils/options-cache.js b/lib/utils/options-cache.js new file mode 100644 index 000000000..7532d07cd --- /dev/null +++ b/lib/utils/options-cache.js @@ -0,0 +1,77 @@ +/* +Inter-loader Option idToOptions + +Vue-loader works by delegating language blocks to sub-loaders. +The main loader needs to share its options object with the sub-loaders. +Technically we should pass everything the sub loaders need via their own +options, however there are two problems with this approach: + +1. Some options (e.g. postcss, compilerModules) may contain non-serializable + values and cannot be passed via inline requests +2. Passing everything via inline requests makes the module string extremely + verbose, and can be quite annoying in error messages. + +To get around this, we cache the options in this module here in order to share +it between loaders. + +- In order to support multiple uses of vue-loader with different options, +each options object is cached with an id. +- To share options across threads in threadMode, options are serialized and +cached on disk. +*/ + +const fs = require('fs') +const path = require('path') +const hash = require('hash-sum') + +const optionsToId = new Map() +const idToOptions = new Map() + +exports.saveOptions = options => { + if (optionsToId.has(options)) { + return optionsToId.get(options) + } + + const threadMode = options.threadMode + const serialized = threadMode ? serialize(options) : null + const id = serialized ? hash(serialized) : String(idToOptions.size) + + idToOptions.set(id, options) + optionsToId.set(options, id) + + if (serialized) { + const fsidToOptionsPath = getidToOptionsPath(id) + if (!fs.existsSync(fsidToOptionsPath)) { + fs.writeFileSync(fsidToOptionsPath, serialized) + } + } + + return id +} + +exports.loadOptions = id => { + const res = idToOptions.get(id) + if (res) { + return res + } + const fsidToOptionsPath = getidToOptionsPath(id) + if (fs.existsSync(fsidToOptionsPath)) { + return JSON.parse(fs.readFileSync(fsidToOptionsPath, 'utf-8')) + } else { + return {} + } +} + +function serialize (options) { + let res + try { + res = JSON.stringify(options) + } catch (e) { + throw new Error(`options must be JSON serializable in thread mode.`) + } + return res +} + +function getidToOptionsPath (id) { + return path.resolve(__dirname, `.options-idToOptions-${id}`) +} From 078fa1c2cc556d4c0f40fac1ca9cbcaf93f5c4b3 Mon Sep 17 00:00:00 2001 From: Evan You Date: Wed, 7 Mar 2018 00:06:53 -0500 Subject: [PATCH 12/18] test: add test case for multiple rule uses (ref #1131) --- test/fixtures/multiple-rules-1.vue | 9 ++++ test/fixtures/multiple-rules-2.vue | 9 ++++ test/fixtures/multiple-rules.js | 4 ++ test/test.js | 69 ++++++++++++++++++++++++++++++ 4 files changed, 91 insertions(+) create mode 100644 test/fixtures/multiple-rules-1.vue create mode 100644 test/fixtures/multiple-rules-2.vue create mode 100644 test/fixtures/multiple-rules.js diff --git a/test/fixtures/multiple-rules-1.vue b/test/fixtures/multiple-rules-1.vue new file mode 100644 index 000000000..858b3eb1e --- /dev/null +++ b/test/fixtures/multiple-rules-1.vue @@ -0,0 +1,9 @@ + + + diff --git a/test/fixtures/multiple-rules-2.vue b/test/fixtures/multiple-rules-2.vue new file mode 100644 index 000000000..97d226939 --- /dev/null +++ b/test/fixtures/multiple-rules-2.vue @@ -0,0 +1,9 @@ + + + diff --git a/test/fixtures/multiple-rules.js b/test/fixtures/multiple-rules.js new file mode 100644 index 000000000..fa741e723 --- /dev/null +++ b/test/fixtures/multiple-rules.js @@ -0,0 +1,4 @@ +import Rule1 from './multiple-rules-1.vue' +import Rule2 from './multiple-rules-2.vue' + +window.rules = [Rule1, Rule2] diff --git a/test/test.js b/test/test.js index fa1236296..c58bff45e 100644 --- a/test/test.js +++ b/test/test.js @@ -1035,4 +1035,73 @@ describe('vue-loader', () => { done() }) }) + + it('multiple rule definitions', done => { + test({ + modify: config => { + // remove default rule + config.module.rules.shift() + }, + entry: './test/fixtures/multiple-rules.js', + module: { + rules: [ + { + test: /\.vue$/, + oneOf: [ + { + include: /-1\.vue$/, + loader: loaderPath, + options: { + postcss: [ + css => { + css.walkDecls('font-size', decl => { + decl.value = `${parseInt(decl.value, 10) * 2}px` + }) + } + ], + compilerModules: [{ + postTransformNode: el => { + el.staticClass = '"multiple-rule-1"' + } + }] + } + }, + { + include: /-2\.vue$/, + loader: loaderPath, + options: { + postcss: [ + css => { + css.walkDecls('font-size', decl => { + decl.value = `${parseInt(decl.value, 10) / 2}px` + }) + } + ], + compilerModules: [{ + postTransformNode: el => { + el.staticClass = '"multiple-rule-2"' + } + }] + } + } + ] + } + ] + } + }, (window, module) => { + const vnode1 = mockRender(window.rules[0]) + const vnode2 = mockRender(window.rules[1]) + expect(vnode1.data.staticClass).to.equal('multiple-rule-1') + expect(vnode2.data.staticClass).to.equal('multiple-rule-2') + const styles = window.document.querySelectorAll('style') + const expr = /\.multiple-rule-\d\s*\{\s*font-size:\s*([.0-9]+)px;/ + for (let i = 0, l = styles.length; i < l; i++) { + const content = styles[i].textContent + if (expr.test(content)) { + expect(parseFloat(RegExp.$1)).to.be.equal(14) + } + } + done() + }) + }) }) From 8ef70c1dcde6670171b44a2778a201ff909f9eae Mon Sep 17 00:00:00 2001 From: Evan You Date: Wed, 7 Mar 2018 00:14:39 -0500 Subject: [PATCH 13/18] test: add test for thread mode --- .gitignore | 1 + lib/utils/options-cache.js | 2 +- test/test.js | 24 ++++++++++++++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index a7d34f090..e8ea33d5c 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ docs/_book *.iml *.log RELEASE.md +.options-cache-* diff --git a/lib/utils/options-cache.js b/lib/utils/options-cache.js index 7532d07cd..ccc9999f6 100644 --- a/lib/utils/options-cache.js +++ b/lib/utils/options-cache.js @@ -73,5 +73,5 @@ function serialize (options) { } function getidToOptionsPath (id) { - return path.resolve(__dirname, `.options-idToOptions-${id}`) + return path.resolve(__dirname, `.options-cache-${id}`) } diff --git a/test/test.js b/test/test.js index c58bff45e..eaa64b391 100644 --- a/test/test.js +++ b/test/test.js @@ -1104,4 +1104,28 @@ describe('vue-loader', () => { done() }) }) + + it('thread mode', done => { + test({ + entry: 'basic.vue', + vue: { + threadMode: true + } + }, (window, module, rawModule) => { + const vnode = mockRender(module, { + msg: 'hi' + }) + + //

{{msg}}

+ expect(vnode.tag).to.equal('h2') + expect(vnode.data.staticClass).to.equal('red') + expect(vnode.children[0].text).to.equal('hi') + + expect(module.data().msg).to.contain('Hello from Component A!') + let style = window.document.querySelector('style').textContent + style = normalizeNewline(style) + expect(style).to.contain('comp-a h2 {\n color: #f00;\n}') + done() + }) + }) }) From 084bf3d8fb08e15e56bbf8c2b4b545963b86d38b Mon Sep 17 00:00:00 2001 From: Evan You Date: Wed, 7 Mar 2018 00:21:05 -0500 Subject: [PATCH 14/18] feat: use more sensible default localIdentName for css modules --- lib/helpers.js | 2 +- test/test.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/helpers.js b/lib/helpers.js index dba93e06b..2367acea7 100644 --- a/lib/helpers.js +++ b/lib/helpers.js @@ -238,7 +238,7 @@ module.exports = function createHelpers ( modules: true } const OPTIONS = { - localIdentName: '[hash:base64]', + localIdentName: '[local]_[hash:base64:8]', importLoaders: 1 } return loader.replace(/((?:^|!)css(?:-loader)?)(\?[^!]*)?/, (m, $1, $2) => { diff --git a/test/test.js b/test/test.js index eaa64b391..377c3b0c9 100644 --- a/test/test.js +++ b/test/test.js @@ -618,7 +618,7 @@ describe('vue-loader', () => { }) } // default localIdentName - testWithIdent(undefined, /^\w{22}/, () => { + testWithIdent(undefined, /^red_\w{8}/, () => { // specified localIdentName const ident = '[path][name]---[local]---[hash:base64:5]' const regex = /css-modules---red---\w{5}/ From 1b554b6d2d4b201c3001543928dc834ee790987a Mon Sep 17 00:00:00 2001 From: Evan You Date: Wed, 7 Mar 2018 00:25:31 -0500 Subject: [PATCH 15/18] chore: fix comment --- lib/utils/options-cache.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/utils/options-cache.js b/lib/utils/options-cache.js index ccc9999f6..07de4b9eb 100644 --- a/lib/utils/options-cache.js +++ b/lib/utils/options-cache.js @@ -1,5 +1,5 @@ /* -Inter-loader Option idToOptions +Inter-loader Option Cache Vue-loader works by delegating language blocks to sub-loaders. The main loader needs to share its options object with the sub-loaders. From 0b36a2c13abc290abb5189f60ea8aff5c84a373e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8B=BE=E4=B8=89=E8=82=A1=E5=9B=9B?= Date: Wed, 7 Mar 2018 13:48:41 +0800 Subject: [PATCH 16/18] fix: removed module id for non-scoped component (#1146) * removed module id for non-scoped component (close #853) * improved test case for style import twice * Update helpers.js --- lib/helpers.js | 4 ++-- test/fixtures/style-import-twice-sub.vue | 3 +++ test/fixtures/style-import-twice.vue | 9 +++++++ test/test.js | 30 ++++++++++++++++++++++++ 4 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 test/fixtures/style-import-twice-sub.vue create mode 100644 test/fixtures/style-import-twice.vue diff --git a/lib/helpers.js b/lib/helpers.js index 2367acea7..0a8d08bb3 100644 --- a/lib/helpers.js +++ b/lib/helpers.js @@ -95,7 +95,7 @@ function resolveLoaders ( const templateCompilerOptions = '?' + JSON.stringify({ - id: moduleId, + id: hasScoped ? moduleId : undefined, hasScoped, hasComment, optionsId, @@ -310,7 +310,7 @@ module.exports = function createHelpers ( // a marker for vue-style-loader to know that this is an import from a vue file optionsId, vue: true, - id: moduleId, + id: scoped ? moduleId : undefined, scoped: !!scoped, sourceMap: needCssSourceMap }) + diff --git a/test/fixtures/style-import-twice-sub.vue b/test/fixtures/style-import-twice-sub.vue new file mode 100644 index 000000000..6ae3d7173 --- /dev/null +++ b/test/fixtures/style-import-twice-sub.vue @@ -0,0 +1,3 @@ + + + diff --git a/test/fixtures/style-import-twice.vue b/test/fixtures/style-import-twice.vue new file mode 100644 index 000000000..1459b47e0 --- /dev/null +++ b/test/fixtures/style-import-twice.vue @@ -0,0 +1,9 @@ + + + + diff --git a/test/test.js b/test/test.js index 377c3b0c9..aff24e89d 100644 --- a/test/test.js +++ b/test/test.js @@ -121,6 +121,19 @@ function interopDefault (module) { : module } +function initStylesForAllSubComponents (module) { + if (module.components) { + for (const name in module.components) { + const sub = module.components[name] + const instance = {} + if (sub && sub.beforeCreate) { + sub.beforeCreate.forEach(hook => hook.call(instance)) + } + initStylesForAllSubComponents(sub) + } + } +} + describe('vue-loader', () => { it('basic', done => { test({ @@ -256,6 +269,23 @@ describe('vue-loader', () => { }) }) + it('style import for a same file twice', done => { + test({ + entry: 'style-import-twice.vue' + }, (window, module) => { + initStylesForAllSubComponents(module) + const styles = window.document.querySelectorAll('style') + expect(styles.length).to.equal(3) + expect(styles[0].textContent).to.contain('h1 { color: red;\n}') + // import with scoped + const id = 'data-v-' + genId('style-import-twice.vue') + expect(styles[1].textContent).to.contain('h1[' + id + '] { color: green;\n}') + const id2 = 'data-v-' + genId('style-import-twice-sub.vue') + expect(styles[2].textContent).to.contain('h1[' + id2 + '] { color: green;\n}') + done() + }) + }) + it('template import', done => { test({ entry: 'template-import.vue' From fc83157ac9ec80bff9498a25e2473c6cbdbad35c Mon Sep 17 00:00:00 2001 From: Evan You Date: Wed, 7 Mar 2018 00:49:12 -0500 Subject: [PATCH 17/18] test: fix test for duplication style injection --- lib/loader.js | 13 ++++++++----- lib/utils/options-cache.js | 6 +++--- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/lib/loader.js b/lib/loader.js index 0c29efaf8..96a2b793f 100644 --- a/lib/loader.js +++ b/lib/loader.js @@ -14,16 +14,19 @@ module.exports = function (content) { const loaderContext = this const isServer = this.target === 'node' const isProduction = this.minimize || process.env.NODE_ENV === 'production' - const options = loaderUtils.getOptions(this) || {} - // shadow mode is an internal option - // enabled via vue-cli's --target web-component - const isShadowMode = !!options.shadowMode + const rawOptions = loaderUtils.getOptions(this) // share options between the main loader of style/template loaders. // to support having multiple uses of vue-loader with different options, // we cache and retrieve options for each unique options object. - const optionsId = saveOptions(options) + const optionsId = saveOptions(rawOptions) + + const options = rawOptions || {} + + // shadow mode is an internal option + // enabled via vue-cli's --target web-component + const isShadowMode = !!options.shadowMode const filePath = this.resourcePath const fileName = path.basename(filePath) diff --git a/lib/utils/options-cache.js b/lib/utils/options-cache.js index 07de4b9eb..b1fd200cb 100644 --- a/lib/utils/options-cache.js +++ b/lib/utils/options-cache.js @@ -32,14 +32,14 @@ exports.saveOptions = options => { return optionsToId.get(options) } - const threadMode = options.threadMode + const threadMode = options && options.threadMode const serialized = threadMode ? serialize(options) : null const id = serialized ? hash(serialized) : String(idToOptions.size) - idToOptions.set(id, options) + idToOptions.set(id, options || {}) optionsToId.set(options, id) - if (serialized) { + if (options && serialized) { const fsidToOptionsPath = getidToOptionsPath(id) if (!fs.existsSync(fsidToOptionsPath)) { fs.writeFileSync(fsidToOptionsPath, serialized) From b22db1dadb7c5a9e13f0535267e05431c1e92717 Mon Sep 17 00:00:00 2001 From: Evan You Date: Wed, 7 Mar 2018 01:11:46 -0500 Subject: [PATCH 18/18] 14.2.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d739a3089..e098eb836 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vue-loader", - "version": "14.1.1", + "version": "14.2.0", "description": "Vue single-file component loader for Webpack", "main": "index.js", "repository": {