From 2573881042b40c6a914933bd03f1bbb93af8ac82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Chopin?= Date: Tue, 8 Nov 2016 18:14:16 +0100 Subject: [PATCH 1/7] Use " in to attribute --- examples/hello-world/pages/about.vue | 2 +- examples/hello-world/pages/index.vue | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/hello-world/pages/about.vue b/examples/hello-world/pages/about.vue index 0b121b4e33..934bfbfe09 100755 --- a/examples/hello-world/pages/about.vue +++ b/examples/hello-world/pages/about.vue @@ -2,7 +2,7 @@

About

-

Home

+

Home

diff --git a/examples/hello-world/pages/index.vue b/examples/hello-world/pages/index.vue index 30ec792d62..52c820e2d7 100755 --- a/examples/hello-world/pages/index.vue +++ b/examples/hello-world/pages/index.vue @@ -2,7 +2,7 @@

Hello World.

-

About

+

About

From 73bdfc03943799025def2b91f2402208126da453 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Chopin?= Date: Wed, 9 Nov 2016 02:35:13 +0100 Subject: [PATCH 2/7] Move vendor and filenames in build key and add loaders --- README.md | 4 +- examples/async-data/nuxt.config.js | 4 +- examples/custom-build/assets/nuxt.png | Bin 0 -> 3427 bytes examples/custom-build/nuxt.config.js | 21 +++++++++++ examples/custom-build/package.json | 10 +++++ examples/custom-build/pages/index.vue | 16 ++++++++ examples/head-elements/pages/index.vue | 5 +++ examples/plugins-vendor/README.md | 18 +++++---- examples/plugins-vendor/nuxt.config.js | 4 +- lib/build/index.js | 49 ++++++++++++++++++++++--- lib/build/webpack/base.config.js | 16 -------- lib/nuxt.js | 18 +++------ package.json | 2 +- 13 files changed, 123 insertions(+), 44 deletions(-) create mode 100644 examples/custom-build/assets/nuxt.png create mode 100644 examples/custom-build/nuxt.config.js create mode 100644 examples/custom-build/package.json create mode 100644 examples/custom-build/pages/index.vue diff --git a/README.md b/README.md index f6d8a3b033..fd32ce1037 100644 --- a/README.md +++ b/README.md @@ -65,9 +65,11 @@ const options = { routes: [], // see examples/custom-routes css: ['/dist/boostrap.css'] // see examples/global-css store: true // see examples/vuex-store - vendor: ['axios'], // see examples/plugins-vendor plugins: ['public/plugin.js'], // see examples/plugins-vendor loading: false or { color: 'blue', failedColor: 'red' } or 'components/my-loader' // see examples/custom-loading + build: { + vendor: ['axios'] // see examples/plugins-vendor + } } // Launch nuxt build with given options diff --git a/examples/async-data/nuxt.config.js b/examples/async-data/nuxt.config.js index 0eb31b286d..9aba646513 100644 --- a/examples/async-data/nuxt.config.js +++ b/examples/async-data/nuxt.config.js @@ -1,5 +1,7 @@ module.exports = { - vendor: ['axios'], // Add axios in the vendor.bundle.js + build: { + vendor: ['axios'] // Add axios in the vendor.bundle.js + }, loading: { color: '#4FC08D', failedColor: '#bf5050', diff --git a/examples/custom-build/assets/nuxt.png b/examples/custom-build/assets/nuxt.png new file mode 100644 index 0000000000000000000000000000000000000000..b9b484a4329c9a20898bc0488216c1428d30e0b1 GIT binary patch literal 3427 zcmV-p4V?0cP)02rU^fh2kq3e?>R^Z<&c;pjlG z-*;l2EiwC4=Sc9LvE!=w=7-Q@Z`12c$R9D=MTw`0W92UWs7)If@y<{*^+5-W6G{6% zv{n9dqcpb%zrDOlZmlig=|1CalaVPV-F;%}g>14&ykCfC2d78HbdSaM6yRI2_OO{g z0&}4{0cZ(a0o(<|6A(?g&{%jmMLh8fwk+oLYuM&+%V+4)9d@^hzqQ~$7ukg!fbt)K z?Jh<|=`vUc4fa7U`c}hnB>Q|5aHYjC(BtjzYV4su%=9-ar9G2Ek8wdt8&@?Jsh3PY zUvYJipwHOqIWXo8n)H@zPl5rQWE+C)9D(Vu*eh0Jz(4NnA=%*TP|cH>7B3t}=RH<$1)sNxf3nE{hY5iyL?E8%yG1Wl^$G!VXy({l zCxe$mPBW2B>;6h8b{FM!;0=Cgk@m!W_2P*>AC9;zM*1qC6P>6bd^knmRcPx3j&UwI zSyxu(YSTosn|BM2r2|!oKs?czBK@m+1e7 z!Tn;y{drHMsvS>b+{XtxI`_F0a=#2Gc@1nki~UOQr!)9!Ql{k+odK8uye*N)dm<%n zn+)T#0>+cXs(wc#xqlo3lbelMsOBaZNn)i$-vz^a#h5x=z6#_Y0p1~brz8yr`bU!6 z$9JKAf|x7=CjzC6K&3>dImec7h@Vm5pAb1P_XzBO3Fkgau2ub57=B-k!9z7S!AK)k zOZ4~PK&v`$xuL43iD+dVu4Zvni}WRcZ;hs<8=$CfYI0o8@p&MJ2vkdSy7?)vUHpvz z?<;a(?h#;;KVZz#R&~CRb)&Hh)!YOlt(cVPeCL~M!6a7o5`{qC5%@7IIgBCkWwCQ2 zsrtuF*xg=Ko&@LGc_7CKBqciC%>ww8k8}ypFOtHCPXst2<#MA^QdK`5isME3Ab42n z)yO&WG>OjlHSQF@p{hFuxQzNtv~kIiGz9ouB$fZ*a$-B#wHSO|d9~1*6oE8}P9Jjs zzL7_|7&tSM!iP@;`0z+4`Lv%>!AU2yUnl$cW@1LL1pw0KQRo1nw6Bmqcd| z4+EPifW8R0JoJc+!be>M>?EI!TGda2{B6Egz%oR@HPQFS0d|5WgnBHL;&O@aAFz$ek!*Q3A&>2xUg zK#>D;k3hL`IA6Wchji{9gT-MH@J)19bvr({@?o8XhQtWWhsLW$YaZm+%ytknM!+}G z+3n+iKEya5^0{mbkH9CP%6I)q91<$=-If-*5qP!;WKHyg=)PnQ z!OEsNh*cuMJ7II#&k5-BBKHQrLgc_QMj&gVv-@8IYvnjNPXD~ffh9-aEU55pP|{A| zhX5(_e@wMwLnaF0cgno3x({ex=BPWr#o?iO%l% z6ED3upM}h|^+44lz$eNViptyI{F$B7?J9sz1X`QzAbLa~uS93p_Tq%9o_sNEHNPL~ zyNt>2AU`MD-N3Il`-12ZfjkqP7iX0m1FIEZPzqE&0-Vd}Yq|Vc-HbA79G@%MA7N-) z;0_VUGtt?t9jlidj-#om+G>6ePM-gv6Q@6;;TdVdj{sMt&XcC?;QU!#C9=c8A3#ZeC|yavF}3prw=cxNVO%BR&kp$y6|~`qq9ag` z#$t;rC&cu6d;B)e7hm+Zrh*GrFz(l1!&gu%+st3X>+$w4tC4TxFw@_x99**y=<#2l z!r#+I|F#tRd8shAdYp`Tt%-fUWxyBR7M3}PHfVbY;EL6LfHr*ab^urb@F{b>$Ijf& zgLunbE{?cP{N+5HHWDA4x9|rRq*s76UmRQ2Z-UKnG;RWP8P4&;26G@E6+7=1*nSLP zF&YhUb&59R=K@=Rs2Juwbb;T9CaVBmGIAawe^{)B^f;BA-kn}83U2qUhi(+4YLUm$N93Wu7cJWdXoT!=#y4pr307#HIN-Py+P zFB5cqcQ@2T*Yh0+frVhaHq;`~+1C?*UUcQYiB5kH7=KKt_H4|FPJ*8|06orIJp6vs z*z?O>S6MuK#Z5kn239N{AHV3mfxM}qCpzQtAh3i&p24TTYQ&WXUYNY-UO3X_zFv^I z&V1O5JRY5OhYe@(yakfB0y85i{YOivPBQ8x$h@QFMLecC;*7(glE{J8kHB--JX@P; zRngfW$J1IR$+J{+`Wp=Bc$NOP0OtU{bTJJ1<|s9^VM1o#kibXiPmDr zwXvN?$F}2}SEGS;5!Eu$+2JFACP5yFPM;S5c1*4Q`E6bX%m7Njc;I`$RN!a8YQWwR z)b2&J4*-1V8W^dcx*+>FN?~&%baYbAFZ&rOY|^UKGSNHWpmqcCMAl>F_2qS9p|tc0 zHb&Y8BlAnJ5x7U&_&TIsm|L~6Kz<5*@0UJb&as~^@HG$EBfj;VT==`NWtD6P_|jq+ zYM&!~ojBNW!lnJ);9!@edaCieAW1ppey&9Q6?nLe{y4PpF8UC_BGU=r7nkq#>;k3% zak>!=93lJy7y@(!dI3!S7l2JbTOc9|s{pR^_KaGJ|KJ6A9bkpcn;4*pzzRUCohCv# z&g5PSu$s6oA;RP^;y9m`W)4uq*gW3hacE%j`~%=c&XYJC;>7p7oSZV(-U3!v@HY_c z&j5Pec$eA;@JmoBmV>eHw*bEkdVP05<`?F8Afigfy1$|GmN002ovPDHLk FV1gj#dvO2& literal 0 HcmV?d00001 diff --git a/examples/custom-build/nuxt.config.js b/examples/custom-build/nuxt.config.js new file mode 100644 index 0000000000..9625400c40 --- /dev/null +++ b/examples/custom-build/nuxt.config.js @@ -0,0 +1,21 @@ +module.exports = { + build: { + filenames: { + css: 'app.css', // default: style.css + vendor: 'vendor.js', // default: vendor.bundle.js + app: 'app.js' // default: nuxt.bundle.js + }, + vendor: ['lodash'], + // Loaders config (Webpack 2) + loaders: [ + { + test: /\.(png|jpg|gif|svg)$/, + loader: 'url', + options: { + limit: 100000, // 100KO + name: 'img/[name].[ext]?[hash]' + } + } + ] + } +} diff --git a/examples/custom-build/package.json b/examples/custom-build/package.json new file mode 100644 index 0000000000..b9a104231d --- /dev/null +++ b/examples/custom-build/package.json @@ -0,0 +1,10 @@ +{ + "name": "custom-build", + "description": "", + "dependencies": { + "nuxt": "latest" + }, + "scripts": { + "start": "nuxt" + } +} diff --git a/examples/custom-build/pages/index.vue b/examples/custom-build/pages/index.vue new file mode 100644 index 0000000000..421cbb3a07 --- /dev/null +++ b/examples/custom-build/pages/index.vue @@ -0,0 +1,16 @@ + + + diff --git a/examples/head-elements/pages/index.vue b/examples/head-elements/pages/index.vue index 8896993d85..f61d0a18cb 100755 --- a/examples/head-elements/pages/index.vue +++ b/examples/head-elements/pages/index.vue @@ -1,4 +1,9 @@ diff --git a/examples/plugins-vendor/README.md b/examples/plugins-vendor/README.md index 7ae87dd476..567ed6516d 100644 --- a/examples/plugins-vendor/README.md +++ b/examples/plugins-vendor/README.md @@ -1,18 +1,20 @@ # Using external modules and plugings with Nuxt.js -## Configuration: `vendor` +## Configuration: `build.vendor` > Nuxt.js allows you to add modules inside the `vendor.bundle.js` file generated to reduce the size of the app bundle. It's really useful when using external modules (like `axios` for example) -To add a module/file inside the vendor bundle, add the `vendor` key inside `nuxt.config.js`: +To add a module/file inside the vendor bundle, add the `build.vendor` key inside `nuxt.config.js`: ```js const { join } = require('path') module.exports = { - vendor: [ - 'axios', // node module - join(__dirname, './js/my-library.js') // custom file - ] + build: { + vendor: [ + 'axios', // node module + join(__dirname, './js/my-library.js') // custom file + ] + } } ``` @@ -35,7 +37,9 @@ Then, I add my file inside the `plugins` key of `nuxt.config.js`: const { join } = require('path') module.exports = { - vendor: ['vue-notifications'], + build: { + vendor: ['vue-notifications'] + }, plugins: [ join(__dirname, './plugins/vue-notifications') ] } ``` diff --git a/examples/plugins-vendor/nuxt.config.js b/examples/plugins-vendor/nuxt.config.js index f7cbe9b2ad..fa08ade53c 100644 --- a/examples/plugins-vendor/nuxt.config.js +++ b/examples/plugins-vendor/nuxt.config.js @@ -1,6 +1,8 @@ const { join } = require('path') module.exports = { - vendor: ['axios', 'mini-toastr', 'vue-notifications'], + build: { + vendor: ['axios', 'mini-toastr', 'vue-notifications'] + }, plugins: [ join(__dirname, './plugins/vue-notifications.js') ] } diff --git a/lib/build/index.js b/lib/build/index.js index 8f5e0fb0fa..18f6e19f71 100644 --- a/lib/build/index.js +++ b/lib/build/index.js @@ -13,7 +13,44 @@ const { createBundleRenderer } = require('vue-server-renderer') const { join, resolve } = require('path') const r = resolve +const defaults = { + filenames: { + css: 'style.css', + vendor: 'vendor.bundle.js', + app: 'nuxt.bundle.js' + }, + vendor: [], + loaders: [] +} +const defaultsLoaders = [ + { + test: /\.(png|jpg|gif|svg)$/, + loader: 'url', + options: { + limit: 1000, // 1KO + name: 'img/[name].[ext]?[hash]' + } + }, + { + test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, + loader: 'url', + query: { + limit: 1000, // 1 KO + name: 'fonts/[name].[hash:7].[ext]' + } + } +] + module.exports = function * () { + if (this.options.build === false) { + return Promise.resolve() + } + // Defaults build options + if (this.options.build && Array.isArray(this.options.build.loaders)) { + this.options.build = _.defaultsDeep(this.options.build, defaults) + } else { + this.options.build = _.defaultsDeep(this.options.build, defaults, { loaders: defaultsLoaders }) + } /* ** Check if pages dir exists and warn if not */ @@ -125,7 +162,6 @@ module.exports = function * () { webpackRunServer.call(this) ] } - return this } function addGlobalWebpackConfig (config) { @@ -142,37 +178,40 @@ function addGlobalWebpackConfig (config) { join(this.dir, 'node_modules') ] } + config.module.rules = config.module.rules.concat(this.options.build.loaders) return config } function getWebpackClientConfig () { var config = require(r(__dirname, 'webpack', 'client.config.js')) + config = _.cloneDeep(config) // Entry config.entry.app = r(this.dir, '.nuxt', 'client.js') // Add vendors if (this.options.store) config.entry.vendor.push('vuex') - config.entry.vendor = config.entry.vendor.concat(this.options.vendor) + config.entry.vendor = config.entry.vendor.concat(this.options.build.vendor) // extract vendor chunks for better caching config.plugins.push( new webpack.optimize.CommonsChunkPlugin({ name: 'vendor', - filename: this.options.filenames.vendor + filename: this.options.build.filenames.vendor }) ) // Output config.output.path = r(this.dir, '.nuxt', 'dist') - config.output.filename = this.options.filenames.app + config.output.filename = this.options.build.filenames.app // Extract text plugin if (this.isProd) { const ExtractTextPlugin = require('extract-text-webpack-plugin') let plugin = config.plugins.find((plugin) => plugin instanceof ExtractTextPlugin) - if (plugin) plugin.filename = this.options.filenames.css + if (plugin) plugin.filename = this.options.build.filenames.css } return addGlobalWebpackConfig.call(this, config) } function getWebpackServerConfig () { var config = require(r(__dirname, 'webpack', 'server.config.js')) + config = _.cloneDeep(config) // Entry config.entry = r(this.dir, '.nuxt', 'server.js') // Output diff --git a/lib/build/webpack/base.config.js b/lib/build/webpack/base.config.js index 2b325ef200..7c2c3a8c25 100644 --- a/lib/build/webpack/base.config.js +++ b/lib/build/webpack/base.config.js @@ -30,22 +30,6 @@ module.exports = { options: { presets: ['es2015', 'stage-2'] } - }, - { - test: /\.(png|jpg|gif|svg)$/, - loader: 'url', - options: { - limit: 1000, // 1KO - name: 'img/[name].[ext]?[hash]' - } - }, - { - test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, - loader: 'url', - query: { - limit: 1000, // 1 KO - name: 'fonts/[name].[hash:7].[ext]' - } } ] } diff --git a/lib/nuxt.js b/lib/nuxt.js index 7c62108223..6918ba9d6d 100644 --- a/lib/nuxt.js +++ b/lib/nuxt.js @@ -17,13 +17,7 @@ class Nuxt { constructor (options = {}, cb) { var defaults = { - filenames: { - css: 'style.css', - vendor: 'vendor.bundle.js', - app: 'nuxt.bundle.js' - }, routes: [], - vendor: [], plugins: [], css: [], store: false, @@ -56,9 +50,9 @@ class Nuxt { this.build = build.bind(this) // Launch build and set this.renderer return co(this.build) - .then((nuxt) => { - if (typeof cb === 'function') cb(null, nuxt) - return nuxt + .then(() => { + if (typeof cb === 'function') cb(null, this) + return this }) .catch((err) => { if (typeof cb === 'function') cb(err) @@ -125,9 +119,9 @@ class Nuxt { APP: html, context: context, files: { - css: join('/_nuxt/', self.options.filenames.css), - vendor: join('/_nuxt/', self.options.filenames.vendor), - app: join('/_nuxt/', self.options.filenames.app) + css: join('/_nuxt/', self.options.build.filenames.css), + vendor: join('/_nuxt/', self.options.build.filenames.vendor), + app: join('/_nuxt/', self.options.build.filenames.app) } }) return app diff --git a/package.json b/package.json index 41680b1112..a3443dc6a5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nuxt", - "version": "0.2.3", + "version": "0.2.4", "description": "A minimalistic framework for server-rendered Vue.js applications (inspired by Next.js)", "main": "index.js", "license": "MIT", From a5780a09cae0a0109103bf660da96e479ec5ef73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Chopin?= Date: Wed, 9 Nov 2016 15:55:02 +0100 Subject: [PATCH 3/7] move to nuxt org, rename loading to nuxt-loading --- examples/vuex-store/README.md | 2 +- lib/app/App.vue | 10 +++++----- lib/app/client.js | 2 +- package.json | 4 ++-- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/examples/vuex-store/README.md b/examples/vuex-store/README.md index 4b68b5dfee..9fdf8a9d2c 100644 --- a/examples/vuex-store/README.md +++ b/examples/vuex-store/README.md @@ -72,4 +72,4 @@ export default { ## Context -To see the list of available keys in `context`, take a look at [this documentation](https://github.com/Atinux/nuxt.js/tree/master/examples/async-data#context). +To see the list of available keys in `context`, take a look at [this documentation](https://github.com/nuxt/nuxt.js/tree/master/examples/async-data#context). diff --git a/lib/app/App.vue b/lib/app/App.vue index ce4f28c449..3c9982f91c 100644 --- a/lib/app/App.vue +++ b/lib/app/App.vue @@ -1,14 +1,14 @@ diff --git a/lib/app/client.js b/lib/app/client.js index 9eeb8bb32e..9f7040b4cc 100644 --- a/lib/app/client.js +++ b/lib/app/client.js @@ -172,7 +172,7 @@ Promise.all(resolveComponents) router.beforeEach(render.bind(_app)) // Call window.onModulesLoaded for jsdom testing (https://github.com/tmpvar/jsdom#dealing-with-asynchronous-script-loading) if (typeof window.onNuxtReady === 'function') { - window.onNuxtReady() + window.onNuxtReady(_app) } }) .catch((err) => { diff --git a/package.json b/package.json index a3443dc6a5..a61a4888e9 100644 --- a/package.json +++ b/package.json @@ -1,10 +1,10 @@ { "name": "nuxt", - "version": "0.2.4", + "version": "0.2.5", "description": "A minimalistic framework for server-rendered Vue.js applications (inspired by Next.js)", "main": "index.js", "license": "MIT", - "repository": "Atinux/nuxt.js", + "repository": "nuxt/nuxt.js", "bin": { "nuxt": "./bin/nuxt" }, From 5adfafcbb26e0c1ea6d19890eca4d8fc2932a5bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Chopin?= Date: Wed, 9 Nov 2016 16:08:14 +0100 Subject: [PATCH 4/7] Fix typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fd32ce1037..5b234b7ec8 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ ## Under development, will be release soon :fire: # nuxt.js ->A minimalistic framework for server-rendered Vue applications (inspired from [Next.js](https://github.com/zeit/next.js)) +>A minimalistic framework for server-rendered Vue applications (inspired by [Next.js](https://github.com/zeit/next.js)) ## How to use From 030e34bfa6c896368f59474535623d5a1182901a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Chopin?= Date: Wed, 9 Nov 2016 20:47:51 +0100 Subject: [PATCH 5/7] Update logo --- examples/custom-build/assets/nuxt.png | Bin 3427 -> 5451 bytes examples/hello-world/static/nuxt.png | Bin 3427 -> 5451 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/examples/custom-build/assets/nuxt.png b/examples/custom-build/assets/nuxt.png index b9b484a4329c9a20898bc0488216c1428d30e0b1..70ff2de679cc8edafe29bd24b7248d7db21e2765 100644 GIT binary patch literal 5451 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 FV1gj#dvO2& diff --git a/examples/hello-world/static/nuxt.png b/examples/hello-world/static/nuxt.png index b9b484a4329c9a20898bc0488216c1428d30e0b1..70ff2de679cc8edafe29bd24b7248d7db21e2765 100644 GIT binary patch literal 5451 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 FV1gj#dvO2& From 72e16d401de6c78362ce5eca623938ac64c4a8a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Chopin?= Date: Wed, 9 Nov 2016 20:50:00 +0100 Subject: [PATCH 6/7] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 5b234b7ec8..553933f932 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ ## Under development, will be release soon :fire: -# nuxt.js ->A minimalistic framework for server-rendered Vue applications (inspired by [Next.js](https://github.com/zeit/next.js)) + +> Nuxt.js is a minimalistic framework for server-rendered Vue applications (inspired by [Next.js](https://github.com/zeit/next.js)) ## How to use From 78d81228f40cdbea96a333afd04a788bd55a301a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Chopin?= Date: Wed, 9 Nov 2016 20:51:56 +0100 Subject: [PATCH 7/7] Update logo --- examples/custom-build/assets/nuxt.png | Bin 5451 -> 4980 bytes examples/hello-world/static/nuxt.png | Bin 5451 -> 4980 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/examples/custom-build/assets/nuxt.png b/examples/custom-build/assets/nuxt.png index 70ff2de679cc8edafe29bd24b7248d7db21e2765..a48bda6be88ffd77c1449dbee861885b5bee3573 100644 GIT binary patch literal 4980 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 literal 5451 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 literal 5451 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