Explorar o código

Merge branch 'dev' into 4.0

# Conflicts:
#	package.json
#	yarn.lock
Kia King Ishii %!s(int64=4) %!d(string=hai) anos
pai
achega
d09ff92c67

+ 1 - 1
docs-gitbook/pt-br/plugins.md

@@ -84,7 +84,7 @@ const store = new Vuex.Store({
 })
 ```
 
-O _plugin_ vai ser usado por padrão. Para produção, você vai precisar do [DefinePlugin](https://webpack.github.io/docs/list-of-plugins.html#defineplugin) para webpack ou [envify](https://github.com/hughsk/envify) para Browserify para converter o valor de  `process.env.NODE_ENV !== 'production'` para `false` na build final.
+O _plugin_ vai ser usado por padrão. Para produção, você vai precisar do [DefinePlugin](https://webpack.js.org/plugins/define-plugin/) para webpack ou [envify](https://github.com/hughsk/envify) para Browserify para converter o valor de  `process.env.NODE_ENV !== 'production'` para `false` na build final.
 
 ### _Plugin_ de _Log_ Embutido
 

+ 220 - 197
docs/.vuepress/config.js

@@ -31,9 +31,9 @@ module.exports = {
       description: 'Gerenciamento de Estado Centralizado para Vue.js'
     },
     '/fr/': {
-        lang: 'fr-FR',
-        title: 'Vuex',
-        description: 'Gestion d\'état centralisé pour Vue.js'
+      lang: 'fr-FR',
+      title: 'Vuex',
+      description: 'Gestion d\'état centralisé pour Vue.js'
     }
   },
   head: [
@@ -43,7 +43,7 @@ module.exports = {
     ['meta', { name: 'msapplication-TileImage', content: '/icons/msapplication-icon-144x144.png' }],
   ],
   serviceWorker: true,
-  theme: 'vue',
+  theme: '@vuepress/vue',
   themeConfig: {
     algolia: {
       apiKey: '97f135e4b5f5487fb53f0f2dae8db59d',
@@ -57,40 +57,43 @@ module.exports = {
         selectText: 'Languages',
         editLinkText: 'Edit this page on GitHub',
         nav: [
-          {
-            text: 'Guide',
-            link: '/guide/'
-          },
-          {
-            text: 'API Reference',
-            link: '/api/'
-          },
-          {
-            text: 'Release Notes',
-            link: 'https://github.com/vuejs/vuex/releases'
-          }
+          { text: 'Guide', link: '/guide/' },
+          { text: 'API Reference', link: '/api/' },
+          { text: 'Release Notes', link: 'https://github.com/vuejs/vuex/releases' }
         ],
         sidebar: [
-          '/installation',
-          '/',
-          '/guide/',
+          {
+            title: 'Introduction',
+            collapsable: false,
+            children: [
+              { title: 'What is Vuex?', path: '/' },
+              { title: 'Installation', path: '/installation' },
+              { title: 'Getting Started', path: '/guide/' }
+            ]
+          },
           {
             title: 'Core Concepts',
             collapsable: false,
             children: [
-              '/guide/state',
-              '/guide/getters',
-              '/guide/mutations',
-              '/guide/actions',
-              '/guide/modules'
+              { title: 'State', path: '/guide/state' },
+              { title: 'Getters', path: '/guide/getters' },
+              { title: 'Mutations', path: '/guide/mutations' },
+              { title: 'Actions', path: '/guide/actions' },
+              { title: 'Modules', path: '/guide/modules' }
             ]
           },
-          '/guide/structure',
-          '/guide/plugins',
-          '/guide/strict',
-          '/guide/forms',
-          '/guide/testing',
-          '/guide/hot-reload'
+          {
+            title: 'Advanced',
+            collapsable: false,
+            children: [
+              { title: 'Application Structure', path: '/guide/structure' },
+              { title: 'Plugins', path: '/guide/plugins' },
+              { title: 'Strict Mode', path: '/guide/strict' },
+              { title: 'Form Handling', path: '/guide/forms' },
+              { title: 'Testing', path: '/guide/testing' },
+              { title: 'Hot Reloading', path: '/guide/hot-reload' }
+            ]
+          }
         ]
       },
       '/zh/': {
@@ -98,80 +101,87 @@ module.exports = {
         selectText: '选择语言',
         editLinkText: '在 GitHub 上编辑此页',
         nav: [
-          {
-            text: '指南',
-            link: '/zh/guide/'
-          },
-          {
-            text: 'API 参考',
-            link: '/zh/api/'
-          },
-          {
-            text: '更新记录',
-            link: 'https://github.com/vuejs/vuex/releases'
-          }
+          { text: '指南', link: '/zh/guide/' },
+          { text: 'API 参考', link: '/zh/api/' },
+          { text: '更新记录', link: 'https://github.com/vuejs/vuex/releases' }
         ],
         sidebar: [
-          '/zh/installation',
-          '/zh/',
-          '/zh/guide/',
+          {
+            title: '介绍',
+            collapsable: false,
+            children: [
+              { title: 'Vuex 是什么?', path: '/zh/' },
+              { title: '安装', path: '/zh/installation' },
+              { title: '开始', path: '/zh/guide/' }
+            ]
+          },
           {
             title: '核心概念',
             collapsable: false,
             children: [
-              '/zh/guide/state',
-              '/zh/guide/getters',
-              '/zh/guide/mutations',
-              '/zh/guide/actions',
-              '/zh/guide/modules'
+              { title: 'State', path: '/zh/guide/state' },
+              { title: 'Getters', path: '/zh/guide/getters' },
+              { title: 'Mutations', path: '/zh/guide/mutations' },
+              { title: 'Actions', path: '/zh/guide/actions' },
+              { title: 'Modules', path: '/zh/guide/modules' }
             ]
           },
-          '/zh/guide/structure',
-          '/zh/guide/plugins',
-          '/zh/guide/strict',
-          '/zh/guide/forms',
-          '/zh/guide/testing',
-          '/zh/guide/hot-reload'
+          {
+            title: '进阶',
+            collapsable: false,
+            children: [
+              { title: '项目结构', path: '/zh/guide/structure' },
+              { title: '插件', path: '/zh/guide/plugins' },
+              { title: '严格模式', path: '/zh/guide/strict' },
+              { title: '表单处理', path: '/zh/guide/forms' },
+              { title: '测试', path: '/zh/guide/testing' },
+              { title: '热重载', path: '/zh/guide/hot-reload' }
+            ]
+          }
         ]
       },
       '/ja/': {
         label: '日本語',
         selectText: '言語',
         editLinkText: 'GitHub 上でこのページを編集する',
-        nav: [{
-            text: 'ガイド',
-            link: '/ja/guide/'
-          },
-          {
-            text: 'API リファレンス',
-            link: '/ja/api/'
-          },
-          {
-            text: 'リリースノート',
-            link: 'https://github.com/vuejs/vuex/releases'
-          }
+        nav: [
+          { text: 'ガイド', link: '/ja/guide/' },
+          { text: 'API リファレンス', link: '/ja/api/' },
+          { text: 'リリースノート', link: 'https://github.com/vuejs/vuex/releases' }
         ],
         sidebar: [
-          '/ja/installation',
-          '/ja/',
-          '/ja/guide/',
+          {
+            title: 'はじめに',
+            collapsable: false,
+            children: [
+              { title: 'Vuex とは何か?', path: '/ja/' },
+              { title: 'インストール', path: '/ja/installation' },
+              { title: 'Vuex 入門', path: '/ja/guide/' }
+            ]
+          },
           {
             title: 'コアコンセプト',
             collapsable: false,
             children: [
-              '/ja/guide/state',
-              '/ja/guide/getters',
-              '/ja/guide/mutations',
-              '/ja/guide/actions',
-              '/ja/guide/modules'
+              { title: 'ステート', path: '/ja/guide/state' },
+              { title: 'ゲッター', path: '/ja/guide/getters' },
+              { title: 'ミューテーション', path: '/ja/guide/mutations' },
+              { title: 'アクション', path: '/ja/guide/actions' },
+              { title: 'モジュール', path: '/ja/guide/modules' }
             ]
           },
-          '/ja/guide/structure',
-          '/ja/guide/plugins',
-          '/ja/guide/strict',
-          '/ja/guide/forms',
-          '/ja/guide/testing',
-          '/ja/guide/hot-reload'
+          {
+            title: '高度な活用',
+            collapsable: false,
+            children: [
+              { title: 'アプリケーションの構造', path: '/ja/guide/structure' },
+              { title: 'プラグイン', path: '/ja/guide/plugins' },
+              { title: '厳格モード', path: '/ja/guide/strict' },
+              { title: 'フォームの扱い', path: '/ja/guide/forms' },
+              { title: 'テスト', path: '/ja/guide/testing' },
+              { title: 'ホットリローディング', path: '/ja/guide/hot-reload' }
+            ]
+          }
         ]
       },
       '/ru/': {
@@ -179,80 +189,87 @@ module.exports = {
         selectText: 'Переводы',
         editLinkText: 'Изменить эту страницу на GitHub',
         nav: [
-          {
-            text: 'Руководство',
-            link: '/ru/guide/'
-          },
-          {
-            text: 'Справочник API',
-            link: '/ru/api/'
-          },
-          {
-            text: 'История изменений',
-            link: 'https://github.com/vuejs/vuex/releases'
-          }
+          { text: 'Руководство', link: '/ru/guide/' },
+          { text: 'Справочник API', link: '/ru/api/' },
+          { text: 'История изменений', link: 'https://github.com/vuejs/vuex/releases' }
         ],
         sidebar: [
-          '/ru/installation',
-          '/ru/',
-          '/ru/guide/',
+          {
+            title: 'Введение',
+            collapsable: false,
+            children: [
+              { title: 'Что такое Vuex?', path: '/ru/' },
+              { title: 'Установка', path: '/ru/installation' },
+              { title: 'Введение', path: '/ru/guide/' }
+            ]
+          },
           {
             title: 'Основные понятия',
             collapsable: false,
             children: [
-              '/ru/guide/state',
-              '/ru/guide/getters',
-              '/ru/guide/mutations',
-              '/ru/guide/actions',
-              '/ru/guide/modules'
+              { title: 'Состояние', path: '/ru/guide/state' },
+              { title: 'Геттеры', path: '/ru/guide/getters' },
+              { title: 'Мутации', path: '/ru/guide/mutations' },
+              { title: 'Действия', path: '/ru/guide/actions' },
+              { title: 'Модули', path: '/ru/guide/modules' }
             ]
           },
-          '/ru/guide/structure',
-          '/ru/guide/plugins',
-          '/ru/guide/strict',
-          '/ru/guide/forms',
-          '/ru/guide/testing',
-          '/ru/guide/hot-reload'
+          {
+            title: 'Продвинутые темы',
+            collapsable: false,
+            children: [
+              { title: 'Структура приложения', path: '/ru/guide/structure' },
+              { title: 'Плагины', path: '/ru/guide/plugins' },
+              { title: 'Строгий режим (strict mode)', path: '/ru/guide/strict' },
+              { title: 'Работа с формами', path: '/ru/guide/forms' },
+              { title: 'Тестирование', path: '/ru/guide/testing' },
+              { title: 'Горячая перезагрузка', path: '/ru/guide/hot-reload' }
+            ]
+          }
         ]
       },
       '/kr/': {
         label: '한국어',
         selectText: '언어 변경',
         editLinkText: 'GitHub에서 이 페이지 수정',
-        nav: [{
-            text: '가이드',
-            link: '/kr/guide/'
-          },
-          {
-            text: 'API 레퍼런스',
-            link: '/kr/api/'
-          },
-          {
-            text: '릴리즈 노트',
-            link: 'https://github.com/vuejs/vuex/releases'
-          }
+        nav: [
+          { text: '가이드', link: '/kr/guide/' },
+          { text: 'API 레퍼런스', link: '/kr/api/' },
+          { text: '릴리즈 노트', link: 'https://github.com/vuejs/vuex/releases' }
         ],
         sidebar: [
-          '/kr/installation',
-          '/kr/',
-          '/kr/guide/',
+          {
+            title: 'Introduction',
+            collapsable: false,
+            children: [
+              { title: 'Vuex가 무엇인가요?', path: '/kr/' },
+              { title: '설치', path: '/kr/installation' },
+              { title: '시작하기', path: '/kr/guide/' }
+            ]
+          },
           {
             title: '핵심 컨셉',
             collapsable: false,
             children: [
-              '/kr/guide/state',
-              '/kr/guide/getters',
-              '/kr/guide/mutations',
-              '/kr/guide/actions',
-              '/kr/guide/modules'
+              { title: '상태', path: '/kr/guide/state' },
+              { title: 'Getters', path: '/kr/guide/getters' },
+              { title: '변이', path: '/kr/guide/mutations' },
+              { title: '액션', path: '/kr/guide/actions' },
+              { title: '모듈', path: '/kr/guide/modules' }
             ]
           },
-          '/kr/guide/structure',
-          '/kr/guide/plugins',
-          '/kr/guide/strict',
-          '/kr/guide/forms',
-          '/kr/guide/testing',
-          '/kr/guide/hot-reload'
+          {
+            title: 'Advanced',
+            collapsable: false,
+            children: [
+              { title: '애플리케이션 구조', path: '/kr/guide/structure' },
+              { title: '플러그인', path: '/kr/guide/plugins' },
+              { title: 'Strict 모드', path: '/kr/guide/strict' },
+              { title: '폼 핸들링', path: '/kr/guide/forms' },
+              { title: '테스팅', path: '/kr/guide/testing' },
+              { title: '핫 리로딩', path: '/kr/guide/hot-reload' }
+            ]
+          }
         ]
       },
       '/ptbr/': {
@@ -260,83 +277,89 @@ module.exports = {
         selectText: 'Idiomas',
         editLinkText: 'Edite esta página no GitHub',
         nav: [
+          { text: 'Guia', link: '/ptbr/guide/' },
+          { text: 'Referência da API', link: '/ptbr/api/' },
+          { text: 'Notas da Versão', link: 'https://github.com/vuejs/vuex/releases' }
+        ],
+        sidebar: [
           {
-            text: 'Guia',
-            link: '/ptbr/guide/'
+            title: 'Introdução',
+            collapsable: false,
+            children: [
+              { title: 'O que é Vuex?', path: '/ptbr/' },
+              { title: 'Instalação', path: '/ptbr/installation' },
+              { title: 'Começando', path: '/ptbr/guide/' }
+            ]
           },
           {
-            text: 'Referência da API',
-            link: '/ptbr/api/'
+            title: 'Conceitos Básicos',
+            collapsable: false,
+            children: [
+              { title: 'Estado', path: '/ptbr/guide/state' },
+              { title: 'Getters', path: '/ptbr/guide/getters' },
+              { title: 'Mutações', path: '/ptbr/guide/mutations' },
+              { title: 'Ações', path: '/ptbr/guide/actions' },
+              { title: 'Módulos', path: '/ptbr/guide/modules' }
+            ]
           },
           {
-            text: 'Notas da Versão',
-            link: 'https://github.com/vuejs/vuex/releases'
+            title: 'Avançado',
+            collapsable: false,
+            children: [
+              { title: 'Estrutura da Aplicação', path: '/ptbr/guide/structure' },
+              { title: 'Plugins', path: '/ptbr/guide/plugins' },
+              { title: 'Modo Estrito', path: '/ptbr/guide/strict' },
+              { title: 'Manipulação de Formulários', path: '/ptbr/guide/forms' },
+              { title: 'Testando', path: '/ptbr/guide/testing' },
+              { title: 'Hot Reloading (Recarregamento Rápido)', path: '/ptbr/guide/hot-reload' }
+            ]
           }
+        ]
+      },
+      '/fr/': {
+        label: 'Français',
+        selectText: 'Langues',
+        editLinkText: 'Éditer la page sur GitHub',
+        nav: [
+          { text: 'Guide', link: '/fr/guide/' },
+          { text: 'API', link: '/fr/api/' },
+          { text: 'Notes de version', link: 'https://github.com/vuejs/vuex/releases' }
         ],
         sidebar: [
-          '/ptbr/installation',
-          '/ptbr/',
-          '/ptbr/guide/',
           {
-            title: 'Conceitos Básicos',
+            title: 'Introduction',
             collapsable: false,
             children: [
-              '/ptbr/guide/state',
-              '/ptbr/guide/getters',
-              '/ptbr/guide/mutations',
-              '/ptbr/guide/actions',
-              '/ptbr/guide/modules'
+              { title: "Vuex, qu'est-ce que c'est ?", path: '/fr/' },
+              { title: 'Installation', path: '/fr/installation' },
+              { title: 'Pour commencer', path: '/fr/guide/' }
             ]
           },
-          '/ptbr/guide/structure',
-          '/ptbr/guide/plugins',
-          '/ptbr/guide/strict',
-          '/ptbr/guide/forms',
-          '/ptbr/guide/testing',
-          '/ptbr/guide/hot-reload'
+          {
+            title: 'Concepts centraux',
+            collapsable: false,
+            children: [
+              { title: 'State', path: '/fr/guide/state' },
+              { title: 'Accesseurs', path: '/fr/guide/getters' },
+              { title: 'Mutations', path: '/fr/guide/mutations' },
+              { title: 'Actions', path: '/fr/guide/actions' },
+              { title: 'Modules', path: '/fr/guide/modules' }
+            ]
+          },
+          {
+            title: 'Avancés',
+            collapsable: false,
+            children: [
+              { title: "Structure d'une application", path: '/fr/guide/structure' },
+              { title: 'Plugins', path: '/fr/guide/plugins' },
+              { title: 'Mode strict', path: '/fr/guide/strict' },
+              { title: 'Gestion des formulaires', path: '/fr/guide/forms' },
+              { title: 'Tests', path: '/fr/guide/testing' },
+              { title: 'Rechargement à chaud', path: '/fr/guide/hot-reload' }
+            ]
+          }
         ]
-      },
-      '/fr/': {
-          label: 'Français',
-          selectText: 'Langues',
-          editLinkText: 'Éditer la page sur GitHub',
-          nav: [
-              {
-                  text: 'Guide',
-                  link: '/fr/guide/'
-              },
-              {
-                  text: 'API',
-                  link: '/fr/api/'
-              },
-              {
-                  text: 'Notes de version',
-                  link: 'https://github.com/vuejs/vuex/releases'
-              }
-          ],
-          sidebar: [
-              '/fr/installation',
-              '/fr/',
-              '/fr/guide/',
-              {
-                  title: 'Concepts centraux',
-                  collapsable: false,
-                  children: [
-                      '/fr/guide/state',
-                      '/fr/guide/getters',
-                      '/fr/guide/mutations',
-                      '/fr/guide/actions',
-                      '/fr/guide/modules'
-                  ]
-              },
-              '/fr/guide/structure',
-              '/fr/guide/plugins',
-              '/fr/guide/strict',
-              '/fr/guide/forms',
-              '/fr/guide/testing',
-              '/fr/guide/hot-reload'
-          ]
-      },
+      }
     }
   }
 }

+ 0 - 0
docs/.vuepress/override.styl → docs/.vuepress/styles/palette.styl


+ 1 - 1
docs/guide/modules.md

@@ -2,7 +2,7 @@
 
 <div class="scrimba"><a href="https://scrimba.com/p/pnyzgAP/cqKK4psq" target="_blank" rel="noopener noreferrer">Try this lesson on Scrimba</a></div>
 
-Due to using a single state tree, all state of our application is contained inside one big object. However, as our application grows in scale, the store can get really bloated.
+Due to using a single state tree, all states of our application are contained inside one big object. However, as our application grows in scale, the store can get really bloated.
 
 To help with that, Vuex allows us to divide our store into **modules**. Each module can contain its own state, mutations, actions, getters, and even nested modules - it's fractal all the way down:
 

+ 1 - 1
docs/guide/plugins.md

@@ -100,7 +100,7 @@ const store = new Vuex.Store({
 ```
 
 :::warning WARNING
-Before v3.5.0, the `createLogger` function is exported at `vuex/dist/logger` package. PLease checkout the "Before Vuex v3.5.0" setion of this page.
+Before v3.5.0, the `createLogger` function is exported at `vuex/dist/logger` package. Please checkout the "Before Vuex v3.5.0" section of this page.
 :::
 
 The `createLogger` function takes a few options:

+ 1 - 1
docs/guide/state.md

@@ -4,7 +4,7 @@
 
 <div class="scrimba"><a href="https://scrimba.com/p/pnyzgAP/cWw3Zhb" target="_blank" rel="noopener noreferrer">Try this lesson on Scrimba</a></div>
 
-Vuex uses a **single state tree** - that is, this single object contains all your application level state and serves as the "single source of truth". This also means usually you will have only one store for each application. A single state tree makes it straightforward to locate a specific piece of state, and allows us to easily take snapshots of the current app state for debugging purposes.
+Vuex uses a **single state tree** - that is, this single object contains all your application level state and serves as the "single source of truth." This also means usually you will have only one store for each application. A single state tree makes it straightforward to locate a specific piece of state, and allows us to easily take snapshots of the current app state for debugging purposes.
 
 The single state tree does not conflict with modularity - in later chapters we will discuss how to split your state and mutations into sub modules.
 

+ 1 - 1
docs/ptbr/guide/plugins.md

@@ -83,7 +83,7 @@ const store = new Vuex.Store({
 })
 ```
 
-O _plugin_ vai ser usado por padrão. Para produção, você vai precisar do [DefinePlugin](https://webpack.github.io/docs/list-of-plugins.html#defineplugin) para webpack ou [envify](https://github.com/hughsk/envify) para Browserify para converter o valor do `process.env.NODE_ENV !== 'production'` para _false_ no _build_ final.
+O _plugin_ vai ser usado por padrão. Para produção, você vai precisar do [DefinePlugin](https://webpack.js.org/plugins/define-plugin/) para webpack ou [envify](https://github.com/hughsk/envify) para Browserify para converter o valor do `process.env.NODE_ENV !== 'production'` para _false_ no _build_ final.
 
 ### Plugin de Log Integrado
 

+ 12 - 2
docs/ru/guide/modules.md

@@ -151,6 +151,7 @@ modules: {
       someGetter (state, getters, rootState, rootGetters) {
         getters.someOtherGetter // -> 'foo/someOtherGetter'
         rootGetters.someOtherGetter // -> 'someOtherGetter'
+        rootGetters['bar/someOtherGetter'] // -> 'bar/someOtherGetter'
       },
       someOtherGetter: state => { ... }
     },
@@ -161,6 +162,7 @@ modules: {
       someAction ({ dispatch, commit, getters, rootGetters }) {
         getters.someGetter // -> 'foo/someGetter'
         rootGetters.someGetter // -> 'someGetter'
+        rootGetters['bar/someGetter'] // -> 'bar/someGetter'
 
         dispatch('someOtherAction') // -> 'foo/someOtherAction'
         dispatch('someOtherAction', null, { root: true }) // -> 'someOtherAction'
@@ -209,7 +211,11 @@ computed: {
   ...mapState({
     a: state => state.some.nested.module.a,
     b: state => state.some.nested.module.b
-  })
+  }),
+  ...mapGetters([
+    'some/nested/module/someGetter', // -> this['some/nested/module/someGetter']
+    'some/nested/module/someOtherGetter', // -> this['some/nested/module/someOtherGetter']
+  ])
 },
 methods: {
   ...mapActions([
@@ -226,7 +232,11 @@ computed: {
   ...mapState('some/nested/module', {
     a: state => state.a,
     b: state => state.b
-  })
+  }),
+  ...mapGetters('some/nested/module', [
+    'someGetter', // -> this.someGetter
+    'someOtherGetter', // -> this.someOtherGetter
+  ])
 },
 methods: {
   ...mapActions('some/nested/module', [

+ 16 - 1
docs/ru/guide/plugins.md

@@ -90,13 +90,17 @@ const store = new Vuex.Store({
 В комплекте с Vuex идёт плагин логирования, который можно использовать при отладке:
 
 ```js
-import createLogger from 'vuex/dist/logger';
+import { createLogger } from 'vuex'
 
 const store = new Vuex.Store({
   plugins: [createLogger()]
 });
 ```
 
+:::warning ВНИМАНИЕ
+До версии 3.5.0 функция `createLogger` экспортировалась по пути `vuex/dist/logger`. Ознакомьтесь с разделом "Vuex до версии 3.5.0" на этой странице.
+:::
+
 Функция `createLogger` принимает следующие опции:
 
 ```js
@@ -135,3 +139,14 @@ const logger = createLogger({
 Логирующий плагин также можно включить напрямую используя отдельный тег `<script>`, помещающий функцию `createVuexLogger` в глобальное пространство имён.
 
 Обратите внимание, что этот плагин делает слепки состояний, поэтому использовать его стоит только на этапе разработки.
+
+#### Vuex до версии 3.5.0
+
+До версии 3.5.0 функция `createLogger` экспортировалась по следующему пути `vuex/dist/logger`.
+
+``` js
+import createLogger from 'vuex/dist/logger'
+const store = new Vuex.Store({
+  plugins: [createLogger()]
+})
+```

+ 4 - 2
package.json

@@ -53,6 +53,7 @@
     "@rollup/plugin-replace": "^2.3.2",
     "@types/node": "^13.13.5",
     "@vue/compiler-sfc": "^3.0.0-beta.10",
+    "@vuepress/theme-vue": "^1.5.4",
     "babel-jest": "^26.0.1",
     "babel-loader": "^8.1.0",
     "brotli": "^1.3.2",
@@ -72,13 +73,14 @@
     "rollup-plugin-terser": "^5.3.0",
     "semver": "^7.3.2",
     "start-server-and-test": "^1.11.0",
-    "todomvc-app-css": "^2.1.0",
+    "todomvc-app-css": "2.1.0",
     "typescript": "^3.8.3",
     "vue": "^3.0.0-beta.10",
     "vue-loader": "^16.0.0-beta.1",
     "vue-template-compiler": "^2.5.22",
-    "vuepress": "^0.14.11",
     "vuepress-theme-vue": "^1.1.1",
+    "vue-template-compiler": "2.5.22",
+    "vuepress": "^1.5.4",
     "webpack": "^4.43.0",
     "webpack-dev-middleware": "^3.7.2",
     "webpack-hot-middleware": "^2.25.0"