expressa 2.1.0 → 2.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (190) hide show
  1. package/.circleci/config.yml +21 -21
  2. package/.eslintrc.json +29 -29
  3. package/LICENSE +21 -21
  4. package/README.md +137 -137
  5. package/auth/jwt.js +31 -31
  6. package/controllers/collections.js +299 -260
  7. package/controllers/install.js +105 -105
  8. package/controllers/status.js +43 -43
  9. package/controllers/users.js +52 -52
  10. package/cypress/fixtures/example.json +4 -4
  11. package/cypress/integration/0_install_spec.js +8 -8
  12. package/cypress/integration/custom_collections.js +30 -30
  13. package/cypress/integration/home.js +9 -9
  14. package/cypress/integration/settings.js +34 -34
  15. package/cypress/integration/users.js +61 -61
  16. package/cypress/plugins/index.js +17 -17
  17. package/cypress/support/commands.js +69 -69
  18. package/cypress/support/index.js +20 -20
  19. package/cypress/support/util.js +10 -10
  20. package/cypress.config.js +18 -18
  21. package/cypress.json +4 -4
  22. package/db/cached.js +44 -44
  23. package/db/file.js +131 -131
  24. package/db/memory.js +92 -92
  25. package/db/mongo.js +93 -93
  26. package/db/postgres.js +100 -100
  27. package/doc/authentication.md +38 -38
  28. package/doc/automatic-fields.md +12 -12
  29. package/doc/blogexample.md +16 -16
  30. package/doc/custom-endpoints.md +20 -20
  31. package/doc/database.md +23 -23
  32. package/doc/development.md +33 -33
  33. package/doc/listeners.md +103 -103
  34. package/doc/modules.md +8 -8
  35. package/doc/permissions.md +14 -14
  36. package/doc/relationships.md +65 -65
  37. package/doc/testing.md +47 -47
  38. package/doc/uploading-files.md +53 -53
  39. package/listeners.js +65 -65
  40. package/listeners_collection_permissions.js +29 -29
  41. package/listeners_users.js +96 -96
  42. package/listeners_validation.js +43 -43
  43. package/middleware/logging.js +30 -30
  44. package/middleware/permissions.js +41 -41
  45. package/modules/access_keys/access_keys.js +32 -32
  46. package/modules/admin/.babelrc +8 -8
  47. package/modules/admin/.editorconfig +14 -14
  48. package/modules/admin/.eslintignore +5 -5
  49. package/modules/admin/.eslintrc.js +197 -197
  50. package/modules/admin/.postcssrc.js +10 -10
  51. package/modules/admin/.travis.yml +5 -5
  52. package/modules/admin/LICENSE +21 -21
  53. package/modules/admin/README.md +88 -88
  54. package/modules/admin/build/build.js +46 -46
  55. package/modules/admin/build/check-versions.js +64 -64
  56. package/modules/admin/build/utils.js +109 -109
  57. package/modules/admin/build/vue-loader.conf.js +5 -5
  58. package/modules/admin/build/webpack.base.conf.js +112 -112
  59. package/modules/admin/build/webpack.dev.conf.js +95 -95
  60. package/modules/admin/build/webpack.prod.conf.js +112 -112
  61. package/modules/admin/config/dev.env.js +8 -8
  62. package/modules/admin/config/index.js +86 -86
  63. package/modules/admin/config/prod.env.js +5 -5
  64. package/modules/admin/dist/css/430.8c9b0482.css +8 -0
  65. package/modules/admin/dist/css/430.8c9b0482.css.gz +0 -0
  66. package/modules/admin/dist/css/566.7a90435e.css +7 -0
  67. package/modules/admin/dist/css/566.7a90435e.css.gz +0 -0
  68. package/modules/admin/dist/css/569.db9a10c2.css +213 -0
  69. package/modules/admin/dist/css/569.db9a10c2.css.gz +0 -0
  70. package/modules/admin/dist/css/572.513a323e.css +210 -0
  71. package/modules/admin/dist/css/572.513a323e.css.gz +0 -0
  72. package/modules/admin/dist/css/622.7a90435e.css +7 -0
  73. package/modules/admin/dist/css/622.7a90435e.css.gz +0 -0
  74. package/modules/admin/dist/css/651.e946bda7.css +6 -0
  75. package/modules/admin/dist/css/651.e946bda7.css.gz +0 -0
  76. package/modules/admin/dist/css/750.79723422.css +2 -0
  77. package/modules/admin/dist/css/750.79723422.css.gz +0 -0
  78. package/modules/admin/dist/css/798.c6646d20.css +1 -0
  79. package/modules/admin/dist/css/798.c6646d20.css.gz +0 -0
  80. package/modules/admin/dist/css/950.1fd9d57c.css +7 -0
  81. package/modules/admin/dist/css/950.1fd9d57c.css.gz +0 -0
  82. package/modules/admin/dist/css/app.c25a6c6c.css +592 -0
  83. package/modules/admin/dist/css/app.c25a6c6c.css.gz +0 -0
  84. package/modules/admin/dist/favicon.ico +0 -0
  85. package/modules/admin/dist/index.html +1 -0
  86. package/modules/admin/dist/static/fonts/element-icons.313f7da.woff +0 -0
  87. package/modules/admin/dist/static/fonts/element-icons.4520188.ttf +0 -0
  88. package/modules/admin/dist/static/img/404.4cf6930.png +0 -0
  89. package/modules/admin/dist/static/js/311.03ef5ed9.js +1 -0
  90. package/modules/admin/dist/static/js/311.03ef5ed9.js.gz +0 -0
  91. package/modules/admin/dist/static/js/430.ddfa4b9e.js +1 -0
  92. package/modules/admin/dist/static/js/430.ddfa4b9e.js.gz +0 -0
  93. package/modules/admin/dist/static/js/460.770a630c.js +1 -0
  94. package/modules/admin/dist/static/js/460.770a630c.js.gz +0 -0
  95. package/modules/admin/dist/static/js/550.e9a3a306.js +1 -0
  96. package/modules/admin/dist/static/js/550.e9a3a306.js.gz +0 -0
  97. package/modules/admin/dist/static/js/569.711f16a3.js +1 -0
  98. package/modules/admin/dist/static/js/569.711f16a3.js.gz +0 -0
  99. package/modules/admin/dist/static/js/572.5c8cfea9.js +1 -0
  100. package/modules/admin/dist/static/js/572.5c8cfea9.js.gz +0 -0
  101. package/modules/admin/dist/static/js/603.bbe5ed23.js +1 -0
  102. package/modules/admin/dist/static/js/603.bbe5ed23.js.gz +0 -0
  103. package/modules/admin/dist/static/js/622.9f06567e.js +1 -0
  104. package/modules/admin/dist/static/js/622.9f06567e.js.gz +0 -0
  105. package/modules/admin/dist/static/js/651.86d741f0.js +1 -0
  106. package/modules/admin/dist/static/js/651.86d741f0.js.gz +0 -0
  107. package/modules/admin/dist/static/js/653.7a309059.js +1 -0
  108. package/modules/admin/dist/static/js/653.7a309059.js.gz +0 -0
  109. package/modules/admin/dist/static/js/750.10551ec8.js +1 -0
  110. package/modules/admin/dist/static/js/750.10551ec8.js.gz +0 -0
  111. package/modules/admin/dist/static/js/798.93ec90bc.js +1 -0
  112. package/modules/admin/dist/static/js/798.93ec90bc.js.gz +0 -0
  113. package/modules/admin/dist/static/js/950.d7f72b66.js +1 -0
  114. package/modules/admin/dist/static/js/950.d7f72b66.js.gz +0 -0
  115. package/modules/admin/dist/static/js/app.23870b61.js +2 -0
  116. package/modules/admin/dist/static/js/app.23870b61.js.LICENSE.txt +121 -0
  117. package/modules/admin/dist/static/js/app.23870b61.js.LICENSE.txt.gz +0 -0
  118. package/modules/admin/dist/static/js/app.23870b61.js.gz +0 -0
  119. package/modules/admin/index.html +16 -16
  120. package/modules/admin/package.json +101 -101
  121. package/modules/admin/src/App.vue +11 -11
  122. package/modules/admin/src/api/login.js +26 -26
  123. package/modules/admin/src/api/table.js +9 -9
  124. package/modules/admin/src/components/Breadcrumb/index.vue +79 -79
  125. package/modules/admin/src/components/Hamburger/index.vue +62 -62
  126. package/modules/admin/src/components/JSONEditor.vue +206 -206
  127. package/modules/admin/src/components/SvgIcon/index.vue +43 -43
  128. package/modules/admin/src/icons/index.js +9 -9
  129. package/modules/admin/src/icons/svgo.yml +22 -22
  130. package/modules/admin/src/main.js +42 -42
  131. package/modules/admin/src/permission.js +49 -49
  132. package/modules/admin/src/router/index.js +200 -200
  133. package/modules/admin/src/store/getters.js +11 -11
  134. package/modules/admin/src/store/index.js +17 -17
  135. package/modules/admin/src/store/modules/app.js +43 -43
  136. package/modules/admin/src/store/modules/user.js +104 -104
  137. package/modules/admin/src/styles/element-ui.scss +29 -29
  138. package/modules/admin/src/styles/index.scss +78 -78
  139. package/modules/admin/src/styles/mixin.scss +27 -27
  140. package/modules/admin/src/styles/sidebar.scss +133 -133
  141. package/modules/admin/src/styles/transition.scss +46 -46
  142. package/modules/admin/src/styles/variables.scss +4 -4
  143. package/modules/admin/src/utils/auth.js +15 -15
  144. package/modules/admin/src/utils/index.js +74 -74
  145. package/modules/admin/src/utils/request.js +47 -47
  146. package/modules/admin/src/utils/validate.js +31 -31
  147. package/modules/admin/src/views/404.vue +235 -235
  148. package/modules/admin/src/views/Dev.vue +33 -33
  149. package/modules/admin/src/views/EditDocument.vue +121 -121
  150. package/modules/admin/src/views/Endpoints.vue +279 -279
  151. package/modules/admin/src/views/Home.vue +84 -84
  152. package/modules/admin/src/views/Install.vue +79 -79
  153. package/modules/admin/src/views/ListDocuments.vue +72 -72
  154. package/modules/admin/src/views/ListDocuments2.vue +467 -467
  155. package/modules/admin/src/views/ManageListeners.vue +67 -67
  156. package/modules/admin/src/views/ManageMiddleware.vue +43 -43
  157. package/modules/admin/src/views/ManagePermissions.vue +75 -75
  158. package/modules/admin/src/views/ViewRequest.vue +77 -77
  159. package/modules/admin/src/views/form/index.vue +91 -91
  160. package/modules/admin/src/views/layout/Layout.vue +69 -69
  161. package/modules/admin/src/views/layout/components/AppMain.vue +41 -41
  162. package/modules/admin/src/views/layout/components/Navbar.vue +97 -97
  163. package/modules/admin/src/views/layout/components/Sidebar/Item.vue +29 -29
  164. package/modules/admin/src/views/layout/components/Sidebar/Link.vue +39 -39
  165. package/modules/admin/src/views/layout/components/Sidebar/SidebarItem.vue +103 -103
  166. package/modules/admin/src/views/layout/components/Sidebar/index.vue +62 -62
  167. package/modules/admin/src/views/layout/components/index.js +3 -3
  168. package/modules/admin/src/views/layout/mixin/ResizeHandler.js +41 -41
  169. package/modules/admin/src/views/login/index.vue +195 -195
  170. package/modules/admin/src/views/tree/index.vue +77 -77
  171. package/modules/collections/collections.js +45 -39
  172. package/modules/core/core.js +197 -197
  173. package/modules/logging/logging.js +88 -88
  174. package/modules/permissions/permissions.js +106 -106
  175. package/package.json +59 -59
  176. package/scripts/expressa +12 -12
  177. package/scripts/run_cypress_tests.sh +35 -35
  178. package/scripts/run_db_tests.sh +8 -8
  179. package/test/0-install.js +96 -96
  180. package/test/collections.js +431 -431
  181. package/test/collections.querying.js +372 -288
  182. package/test/db.js +258 -258
  183. package/test/db.strings.js +73 -73
  184. package/test/db.updating.js +186 -186
  185. package/test/logging.js +29 -29
  186. package/test/test.js +93 -93
  187. package/test/testserver.js +30 -30
  188. package/test/testutils.js +136 -136
  189. package/test/users.js +425 -425
  190. package/util.js +522 -522
@@ -1,88 +1,88 @@
1
- # vue-admin-template
2
-
3
- > A minimal vue admin template with Element UI & axios & iconfont & permission control & lint
4
-
5
- **Live demo:** http://panjiachen.github.io/vue-admin-template
6
-
7
- [中文文档](https://github.com/PanJiaChen/vue-admin-template/blob/master/README-zh.md)
8
-
9
- ## Build Setup
10
-
11
- ```bash
12
- # Clone project
13
- git clone https://github.com/PanJiaChen/vue-admin-template.git
14
-
15
- # Install dependencies
16
- npm install
17
-
18
- # Serve with hot reload at localhost:9528
19
- npm run dev
20
-
21
- # Build for production with minification
22
- npm run build
23
-
24
- # Build for production and view the bundle analyzer report
25
- npm run build --report
26
- ```
27
-
28
- ## Demo
29
-
30
- ![demo](https://github.com/PanJiaChen/PanJiaChen.github.io/blob/master/images/demo.gif)
31
-
32
- ## Extra
33
-
34
- If you want router permission && generate menu by user roles , you can use this branch [permission-control](https://github.com/PanJiaChen/vue-admin-template/tree/permission-control)
35
-
36
- This project is based on `webpack4` development. If you want to use `webpack3` development, please use this branch [webpack3](https://github.com/PanJiaChen/vue-admin-template/tree/webpack3)
37
-
38
- For `typescript` version, you can use [vue-typescript-admin-template](https://github.com/Armour/vue-typescript-admin-template) (Credits: [@Armour](https://github.com/Armour))
39
-
40
- ## Related Project
41
-
42
- [vue-element-admin](https://github.com/PanJiaChen/vue-element-admin)
43
-
44
- [electron-vue-admin](https://github.com/PanJiaChen/electron-vue-admin)
45
-
46
- [vue-typescript-admin-template](https://github.com/Armour/vue-typescript-admin-template)
47
-
48
- ### Element-Ui using cdn tutorial
49
-
50
- First find `index.html`([root directory](https://github.com/PanJiaChen/vue-admin-template/blob/element-ui-cdn/index.html))
51
-
52
- Import css and js of `Element`, and then import vue. Because `Element` is vue-dependent, vue must be import before it.
53
-
54
- Then find [webpack.base.conf.js](https://github.com/PanJiaChen/vue-admin-template/blob/element-ui-cdn/build/webpack.base.conf.js)
55
- Add `externals` to make webpack not package vue and element.
56
-
57
- ```
58
- externals: {
59
- vue: 'Vue',
60
- 'element-ui':'ELEMENT'
61
- }
62
- ```
63
-
64
- Finally there is a small detail to pay attention to that if you import vue in global, you don't need to manually `Vue.use(Vuex)`, it will be automatically mounted, see
65
- [issue](https://github.com/vuejs/vuex/issues/731)
66
-
67
- And you can use `npm run build --report` to see the effect
68
-
69
- Pictured:
70
- ![demo](https://panjiachen.github.io/images/element-cdn.png)
71
-
72
- **[Detailed code](https://github.com/PanJiaChen/vue-admin-template/commit/746aff560932704ae821f82f10b8b2a9681d5177)**
73
-
74
- **[Branch](https://github.com/PanJiaChen/vue-admin-template/tree/element-ui-cdn)**
75
-
76
- ## Browsers support
77
-
78
- Modern browsers and Internet Explorer 10+.
79
-
80
- | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt="IE / Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>IE / Edge | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Firefox | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Chrome | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Safari |
81
- | --------- | --------- | --------- | --------- |
82
- | IE10, IE11, Edge| last 2 versions| last 2 versions| last 2 versions
83
-
84
- ## License
85
-
86
- [MIT](https://github.com/PanJiaChen/vue-admin-template/blob/master/LICENSE) license.
87
-
88
- Copyright (c) 2017-present PanJiaChen
1
+ # vue-admin-template
2
+
3
+ > A minimal vue admin template with Element UI & axios & iconfont & permission control & lint
4
+
5
+ **Live demo:** http://panjiachen.github.io/vue-admin-template
6
+
7
+ [中文文档](https://github.com/PanJiaChen/vue-admin-template/blob/master/README-zh.md)
8
+
9
+ ## Build Setup
10
+
11
+ ```bash
12
+ # Clone project
13
+ git clone https://github.com/PanJiaChen/vue-admin-template.git
14
+
15
+ # Install dependencies
16
+ npm install
17
+
18
+ # Serve with hot reload at localhost:9528
19
+ npm run dev
20
+
21
+ # Build for production with minification
22
+ npm run build
23
+
24
+ # Build for production and view the bundle analyzer report
25
+ npm run build --report
26
+ ```
27
+
28
+ ## Demo
29
+
30
+ ![demo](https://github.com/PanJiaChen/PanJiaChen.github.io/blob/master/images/demo.gif)
31
+
32
+ ## Extra
33
+
34
+ If you want router permission && generate menu by user roles , you can use this branch [permission-control](https://github.com/PanJiaChen/vue-admin-template/tree/permission-control)
35
+
36
+ This project is based on `webpack4` development. If you want to use `webpack3` development, please use this branch [webpack3](https://github.com/PanJiaChen/vue-admin-template/tree/webpack3)
37
+
38
+ For `typescript` version, you can use [vue-typescript-admin-template](https://github.com/Armour/vue-typescript-admin-template) (Credits: [@Armour](https://github.com/Armour))
39
+
40
+ ## Related Project
41
+
42
+ [vue-element-admin](https://github.com/PanJiaChen/vue-element-admin)
43
+
44
+ [electron-vue-admin](https://github.com/PanJiaChen/electron-vue-admin)
45
+
46
+ [vue-typescript-admin-template](https://github.com/Armour/vue-typescript-admin-template)
47
+
48
+ ### Element-Ui using cdn tutorial
49
+
50
+ First find `index.html`([root directory](https://github.com/PanJiaChen/vue-admin-template/blob/element-ui-cdn/index.html))
51
+
52
+ Import css and js of `Element`, and then import vue. Because `Element` is vue-dependent, vue must be import before it.
53
+
54
+ Then find [webpack.base.conf.js](https://github.com/PanJiaChen/vue-admin-template/blob/element-ui-cdn/build/webpack.base.conf.js)
55
+ Add `externals` to make webpack not package vue and element.
56
+
57
+ ```
58
+ externals: {
59
+ vue: 'Vue',
60
+ 'element-ui':'ELEMENT'
61
+ }
62
+ ```
63
+
64
+ Finally there is a small detail to pay attention to that if you import vue in global, you don't need to manually `Vue.use(Vuex)`, it will be automatically mounted, see
65
+ [issue](https://github.com/vuejs/vuex/issues/731)
66
+
67
+ And you can use `npm run build --report` to see the effect
68
+
69
+ Pictured:
70
+ ![demo](https://panjiachen.github.io/images/element-cdn.png)
71
+
72
+ **[Detailed code](https://github.com/PanJiaChen/vue-admin-template/commit/746aff560932704ae821f82f10b8b2a9681d5177)**
73
+
74
+ **[Branch](https://github.com/PanJiaChen/vue-admin-template/tree/element-ui-cdn)**
75
+
76
+ ## Browsers support
77
+
78
+ Modern browsers and Internet Explorer 10+.
79
+
80
+ | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt="IE / Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>IE / Edge | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Firefox | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Chrome | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Safari |
81
+ | --------- | --------- | --------- | --------- |
82
+ | IE10, IE11, Edge| last 2 versions| last 2 versions| last 2 versions
83
+
84
+ ## License
85
+
86
+ [MIT](https://github.com/PanJiaChen/vue-admin-template/blob/master/LICENSE) license.
87
+
88
+ Copyright (c) 2017-present PanJiaChen
@@ -1,46 +1,46 @@
1
- 'use strict'
2
- require('./check-versions')()
3
-
4
- process.env.NODE_ENV = 'production'
5
-
6
- const ora = require('ora')
7
- const rm = require('rimraf')
8
- const path = require('path')
9
- const chalk = require('chalk')
10
- const webpack = require('webpack')
11
- const config = require('../config')
12
- const webpackConfig = require('./webpack.prod.conf')
13
-
14
- const spinner = ora('building for production...')
15
- spinner.start()
16
-
17
- // Clean the entire dist directory to ensure no stale top-level hashed files linger
18
- rm(path.join(config.build.assetsRoot), err => {
19
- if (err) throw err
20
- webpack(webpackConfig, (err, stats) => {
21
- spinner.stop()
22
- if (err) throw err
23
- process.stdout.write(
24
- stats.toString({
25
- colors: true,
26
- modules: false,
27
- children: false,
28
- chunks: false,
29
- chunkModules: false
30
- }) + '\n\n'
31
- )
32
-
33
- if (stats.hasErrors()) {
34
- console.log(chalk.red(' Build failed with errors.\n'))
35
- process.exit(1)
36
- }
37
-
38
- console.log(chalk.cyan(' Build complete.\n'))
39
- console.log(
40
- chalk.yellow(
41
- ' Tip: built files are meant to be served over an HTTP server.\n' +
42
- " Opening index.html over file:// won't work.\n"
43
- )
44
- )
45
- })
46
- })
1
+ 'use strict'
2
+ require('./check-versions')()
3
+
4
+ process.env.NODE_ENV = 'production'
5
+
6
+ const ora = require('ora')
7
+ const rm = require('rimraf')
8
+ const path = require('path')
9
+ const chalk = require('chalk')
10
+ const webpack = require('webpack')
11
+ const config = require('../config')
12
+ const webpackConfig = require('./webpack.prod.conf')
13
+
14
+ const spinner = ora('building for production...')
15
+ spinner.start()
16
+
17
+ // Clean the entire dist directory to ensure no stale top-level hashed files linger
18
+ rm(path.join(config.build.assetsRoot), err => {
19
+ if (err) throw err
20
+ webpack(webpackConfig, (err, stats) => {
21
+ spinner.stop()
22
+ if (err) throw err
23
+ process.stdout.write(
24
+ stats.toString({
25
+ colors: true,
26
+ modules: false,
27
+ children: false,
28
+ chunks: false,
29
+ chunkModules: false
30
+ }) + '\n\n'
31
+ )
32
+
33
+ if (stats.hasErrors()) {
34
+ console.log(chalk.red(' Build failed with errors.\n'))
35
+ process.exit(1)
36
+ }
37
+
38
+ console.log(chalk.cyan(' Build complete.\n'))
39
+ console.log(
40
+ chalk.yellow(
41
+ ' Tip: built files are meant to be served over an HTTP server.\n' +
42
+ " Opening index.html over file:// won't work.\n"
43
+ )
44
+ )
45
+ })
46
+ })
@@ -1,64 +1,64 @@
1
- 'use strict'
2
- const chalk = require('chalk')
3
- const semver = require('semver')
4
- const packageConfig = require('../package.json')
5
- const shell = require('shelljs')
6
-
7
- function exec(cmd) {
8
- return require('child_process')
9
- .execSync(cmd)
10
- .toString()
11
- .trim()
12
- }
13
-
14
- const versionRequirements = [
15
- {
16
- name: 'node',
17
- currentVersion: semver.clean(process.version),
18
- versionRequirement: packageConfig.engines.node
19
- }
20
- ]
21
-
22
- if (shell.which('npm')) {
23
- versionRequirements.push({
24
- name: 'npm',
25
- currentVersion: exec('npm --version'),
26
- versionRequirement: packageConfig.engines.npm
27
- })
28
- }
29
-
30
- module.exports = function() {
31
- const warnings = []
32
-
33
- for (let i = 0; i < versionRequirements.length; i++) {
34
- const mod = versionRequirements[i]
35
-
36
- if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) {
37
- warnings.push(
38
- mod.name +
39
- ': ' +
40
- chalk.red(mod.currentVersion) +
41
- ' should be ' +
42
- chalk.green(mod.versionRequirement)
43
- )
44
- }
45
- }
46
-
47
- if (warnings.length) {
48
- console.log('')
49
- console.log(
50
- chalk.yellow(
51
- 'To use this template, you must update following to modules:'
52
- )
53
- )
54
- console.log()
55
-
56
- for (let i = 0; i < warnings.length; i++) {
57
- const warning = warnings[i]
58
- console.log(' ' + warning)
59
- }
60
-
61
- console.log()
62
- process.exit(1)
63
- }
64
- }
1
+ 'use strict'
2
+ const chalk = require('chalk')
3
+ const semver = require('semver')
4
+ const packageConfig = require('../package.json')
5
+ const shell = require('shelljs')
6
+
7
+ function exec(cmd) {
8
+ return require('child_process')
9
+ .execSync(cmd)
10
+ .toString()
11
+ .trim()
12
+ }
13
+
14
+ const versionRequirements = [
15
+ {
16
+ name: 'node',
17
+ currentVersion: semver.clean(process.version),
18
+ versionRequirement: packageConfig.engines.node
19
+ }
20
+ ]
21
+
22
+ if (shell.which('npm')) {
23
+ versionRequirements.push({
24
+ name: 'npm',
25
+ currentVersion: exec('npm --version'),
26
+ versionRequirement: packageConfig.engines.npm
27
+ })
28
+ }
29
+
30
+ module.exports = function() {
31
+ const warnings = []
32
+
33
+ for (let i = 0; i < versionRequirements.length; i++) {
34
+ const mod = versionRequirements[i]
35
+
36
+ if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) {
37
+ warnings.push(
38
+ mod.name +
39
+ ': ' +
40
+ chalk.red(mod.currentVersion) +
41
+ ' should be ' +
42
+ chalk.green(mod.versionRequirement)
43
+ )
44
+ }
45
+ }
46
+
47
+ if (warnings.length) {
48
+ console.log('')
49
+ console.log(
50
+ chalk.yellow(
51
+ 'To use this template, you must update following to modules:'
52
+ )
53
+ )
54
+ console.log()
55
+
56
+ for (let i = 0; i < warnings.length; i++) {
57
+ const warning = warnings[i]
58
+ console.log(' ' + warning)
59
+ }
60
+
61
+ console.log()
62
+ process.exit(1)
63
+ }
64
+ }
@@ -1,109 +1,109 @@
1
- 'use strict'
2
- const path = require('path')
3
- const config = require('../config')
4
- const MiniCssExtractPlugin = require('mini-css-extract-plugin')
5
- const packageConfig = require('../package.json')
6
-
7
- exports.assetsPath = function(_path) {
8
- const assetsSubDirectory =
9
- process.env.NODE_ENV === 'production'
10
- ? config.build.assetsSubDirectory
11
- : config.dev.assetsSubDirectory
12
-
13
- return path.posix.join(assetsSubDirectory, _path)
14
- }
15
-
16
- exports.cssLoaders = function(options) {
17
- options = options || {}
18
-
19
- const cssLoader = {
20
- loader: 'css-loader',
21
- options: {
22
- sourceMap: options.sourceMap,
23
- esModule: false
24
- }
25
- }
26
-
27
- const postcssLoader = {
28
- loader: 'postcss-loader',
29
- options: {
30
- sourceMap: options.sourceMap
31
- }
32
- }
33
-
34
- // generate loader string to be used with extract text plugin
35
- function generateLoaders(loader, loaderOptions) {
36
- const loaders = []
37
-
38
- // Extract CSS when that option is specified
39
- // (which is the case during production build)
40
- if (options.extract) {
41
- loaders.push(MiniCssExtractPlugin.loader)
42
- } else {
43
- loaders.push('vue-style-loader')
44
- }
45
-
46
- loaders.push(cssLoader)
47
-
48
- if (options.usePostCSS) {
49
- loaders.push(postcssLoader)
50
- }
51
-
52
- if (loader) {
53
- loaders.push({
54
- loader: loader + '-loader',
55
- options: Object.assign({}, loaderOptions, {
56
- sourceMap: options.sourceMap
57
- })
58
- })
59
- }
60
-
61
- return loaders
62
- }
63
- // https://vue-loader.vuejs.org/en/configurations/extract-css.html
64
- return {
65
- css: generateLoaders(),
66
- postcss: generateLoaders(),
67
- less: generateLoaders('less'),
68
- sass: generateLoaders('sass', {
69
- indentedSyntax: true
70
- }),
71
- scss: generateLoaders('sass'),
72
- stylus: generateLoaders('stylus'),
73
- styl: generateLoaders('stylus')
74
- }
75
- }
76
-
77
- // Generate loaders for standalone style files (outside of .vue)
78
- exports.styleLoaders = function(options) {
79
- const output = []
80
- const loaders = exports.cssLoaders(options)
81
-
82
- for (const extension in loaders) {
83
- const loader = loaders[extension]
84
- output.push({
85
- test: new RegExp('\\.' + extension + '$'),
86
- use: loader
87
- })
88
- }
89
-
90
- return output
91
- }
92
-
93
- exports.createNotifierCallback = () => {
94
- const notifier = require('node-notifier')
95
-
96
- return (severity, errors) => {
97
- if (severity !== 'error') return
98
-
99
- const error = errors[0]
100
- const filename = error.file && error.file.split('!').pop()
101
-
102
- notifier.notify({
103
- title: packageConfig.name,
104
- message: severity + ': ' + error.name,
105
- subtitle: filename || '',
106
- icon: path.join(__dirname, 'logo.png')
107
- })
108
- }
109
- }
1
+ 'use strict'
2
+ const path = require('path')
3
+ const config = require('../config')
4
+ const MiniCssExtractPlugin = require('mini-css-extract-plugin')
5
+ const packageConfig = require('../package.json')
6
+
7
+ exports.assetsPath = function(_path) {
8
+ const assetsSubDirectory =
9
+ process.env.NODE_ENV === 'production'
10
+ ? config.build.assetsSubDirectory
11
+ : config.dev.assetsSubDirectory
12
+
13
+ return path.posix.join(assetsSubDirectory, _path)
14
+ }
15
+
16
+ exports.cssLoaders = function(options) {
17
+ options = options || {}
18
+
19
+ const cssLoader = {
20
+ loader: 'css-loader',
21
+ options: {
22
+ sourceMap: options.sourceMap,
23
+ esModule: false
24
+ }
25
+ }
26
+
27
+ const postcssLoader = {
28
+ loader: 'postcss-loader',
29
+ options: {
30
+ sourceMap: options.sourceMap
31
+ }
32
+ }
33
+
34
+ // generate loader string to be used with extract text plugin
35
+ function generateLoaders(loader, loaderOptions) {
36
+ const loaders = []
37
+
38
+ // Extract CSS when that option is specified
39
+ // (which is the case during production build)
40
+ if (options.extract) {
41
+ loaders.push(MiniCssExtractPlugin.loader)
42
+ } else {
43
+ loaders.push('vue-style-loader')
44
+ }
45
+
46
+ loaders.push(cssLoader)
47
+
48
+ if (options.usePostCSS) {
49
+ loaders.push(postcssLoader)
50
+ }
51
+
52
+ if (loader) {
53
+ loaders.push({
54
+ loader: loader + '-loader',
55
+ options: Object.assign({}, loaderOptions, {
56
+ sourceMap: options.sourceMap
57
+ })
58
+ })
59
+ }
60
+
61
+ return loaders
62
+ }
63
+ // https://vue-loader.vuejs.org/en/configurations/extract-css.html
64
+ return {
65
+ css: generateLoaders(),
66
+ postcss: generateLoaders(),
67
+ less: generateLoaders('less'),
68
+ sass: generateLoaders('sass', {
69
+ indentedSyntax: true
70
+ }),
71
+ scss: generateLoaders('sass'),
72
+ stylus: generateLoaders('stylus'),
73
+ styl: generateLoaders('stylus')
74
+ }
75
+ }
76
+
77
+ // Generate loaders for standalone style files (outside of .vue)
78
+ exports.styleLoaders = function(options) {
79
+ const output = []
80
+ const loaders = exports.cssLoaders(options)
81
+
82
+ for (const extension in loaders) {
83
+ const loader = loaders[extension]
84
+ output.push({
85
+ test: new RegExp('\\.' + extension + '$'),
86
+ use: loader
87
+ })
88
+ }
89
+
90
+ return output
91
+ }
92
+
93
+ exports.createNotifierCallback = () => {
94
+ const notifier = require('node-notifier')
95
+
96
+ return (severity, errors) => {
97
+ if (severity !== 'error') return
98
+
99
+ const error = errors[0]
100
+ const filename = error.file && error.file.split('!').pop()
101
+
102
+ notifier.notify({
103
+ title: packageConfig.name,
104
+ message: severity + ': ' + error.name,
105
+ subtitle: filename || '',
106
+ icon: path.join(__dirname, 'logo.png')
107
+ })
108
+ }
109
+ }
@@ -1,5 +1,5 @@
1
- 'use strict'
2
-
3
- module.exports = {
4
- //You can set the vue-loader configuration by yourself.
5
- }
1
+ 'use strict'
2
+
3
+ module.exports = {
4
+ //You can set the vue-loader configuration by yourself.
5
+ }