1- const BASE_URL = "https://diffviewer.vercel.app" ;
1+ import path from 'path'
2+ import MonacoWebpackPlugin from 'monaco-editor-webpack-plugin'
3+
4+ const BASE_URL = 'https://diffviewer.vercel.app'
25const domainAliases = [
3- " https://diffchecker.vercel.app/" ,
4- " https://textdiff.vercel.app/" ,
5- " https://differencer.vercel.app/" ,
6- " https://diffie.vercel.app/" ,
7- " https://differencefinder.vercel.app/"
6+ ' https://diffchecker.vercel.app/' ,
7+ ' https://textdiff.vercel.app/' ,
8+ ' https://differencer.vercel.app/' ,
9+ ' https://diffie.vercel.app/' ,
10+ ' https://differencefinder.vercel.app/' ,
811]
9- const canonicalLinks = domainAliases . map ( x => ( { rel : "canonical" , href : x } ) )
10- const DESCRIPTION = "A privacy first diff viewer that is secure, easy, simple and for any text type" ;
12+ const canonicalLinks = domainAliases . map ( ( x ) => ( { rel : 'canonical' , href : x } ) )
13+ const DESCRIPTION =
14+ 'A privacy first diff viewer that is secure, easy, simple and for any text type'
1115export default {
1216 ssr : true ,
1317 head : {
@@ -17,67 +21,219 @@ export default {
1721 { name : 'color-scheme' , content : 'dark light' } ,
1822 { name : 'viewport' , content : 'width=device-width, initial-scale=1' } ,
1923 { name : 'format-detection' , content : 'telephone=no' } ,
20- { name : "theme-color" , content : "#2563EB" } ,
21- { name : "og:url" , property : "og:url" , content : `${ BASE_URL } ` } ,
22- { name : "og:image" , property : "og:url" , content : `${ BASE_URL } /brand-430x495.png` } ,
23- { name : "twitter:title" , property : "og:url" , content : DESCRIPTION } ,
24- { name : "og:title" , property : "og:url" , content : DESCRIPTION } ,
25- { name : "og:type" , property : "og:url" , content : "website" } ,
26- { name : "description" , property : "og:url" , content : DESCRIPTION } ,
27- { name : "og:description" , property : "og:url" , content : DESCRIPTION } ,
28- { name : "twitter:description" , property : "og:url" , content : DESCRIPTION } ,
29- { name : "twitter:card" , property : "og:url" , content : "summary" } ,
30- { name : "twitter:creator" , property : "og:url" , content : "@technikhil314" } ,
31- { name : "og:image" , property : "og:url" , content : `${ BASE_URL } /128x128.png` } ,
32- { name : "og:image" , property : "og:url" , content : `${ BASE_URL } /brand-192x192.png` } ,
33- { name : "og:image" , property : "og:url" , content : `${ BASE_URL } /brand-200x200.png` } ,
34- { name : "og:image" , property : "og:url" , content : `${ BASE_URL } /brand-512x512.png` } ,
35- { name : "og:image" , property : "og:url" , content : `${ BASE_URL } /brand-800x800.png` } ,
36- { name : "image" , property : "og:url" , content : `${ BASE_URL } /brand-1200x600.png` } ,
37- { name : "og:image:alt" , property : "og:url" , content : DESCRIPTION } ,
38- { name : "twitter:image" , property : "og:url" , content : `${ BASE_URL } /128x128.png` } ,
24+ { name : 'theme-color' , content : '#2563EB' } ,
25+ { name : 'og:url' , property : 'og:url' , content : `${ BASE_URL } ` } ,
26+ {
27+ name : 'og:image' ,
28+ property : 'og:url' ,
29+ content : `${ BASE_URL } /brand-430x495.png` ,
30+ } ,
31+ { name : 'twitter:title' , property : 'og:url' , content : DESCRIPTION } ,
32+ { name : 'og:title' , property : 'og:url' , content : DESCRIPTION } ,
33+ { name : 'og:type' , property : 'og:url' , content : 'website' } ,
34+ { name : 'description' , property : 'og:url' , content : DESCRIPTION } ,
35+ { name : 'og:description' , property : 'og:url' , content : DESCRIPTION } ,
36+ { name : 'twitter:description' , property : 'og:url' , content : DESCRIPTION } ,
37+ { name : 'twitter:card' , property : 'og:url' , content : 'summary' } ,
38+ {
39+ name : 'twitter:creator' ,
40+ property : 'og:url' ,
41+ content : '@technikhil314' ,
42+ } ,
43+ {
44+ name : 'og:image' ,
45+ property : 'og:url' ,
46+ content : `${ BASE_URL } /128x128.png` ,
47+ } ,
48+ {
49+ name : 'og:image' ,
50+ property : 'og:url' ,
51+ content : `${ BASE_URL } /brand-192x192.png` ,
52+ } ,
53+ {
54+ name : 'og:image' ,
55+ property : 'og:url' ,
56+ content : `${ BASE_URL } /brand-200x200.png` ,
57+ } ,
58+ {
59+ name : 'og:image' ,
60+ property : 'og:url' ,
61+ content : `${ BASE_URL } /brand-512x512.png` ,
62+ } ,
63+ {
64+ name : 'og:image' ,
65+ property : 'og:url' ,
66+ content : `${ BASE_URL } /brand-800x800.png` ,
67+ } ,
68+ {
69+ name : 'image' ,
70+ property : 'og:url' ,
71+ content : `${ BASE_URL } /brand-1200x600.png` ,
72+ } ,
73+ { name : 'og:image:alt' , property : 'og:url' , content : DESCRIPTION } ,
74+ {
75+ name : 'twitter:image' ,
76+ property : 'og:url' ,
77+ content : `${ BASE_URL } /128x128.png` ,
78+ } ,
3979 ] ,
4080 link : [
41- { rel : "manifest" , href : "/manifest.json" } ,
42- { rel : "sitemap" , type : "application/xml" , title : "Sitemap" , href : "/sitemap.xml" } ,
43- { rel : "preconnect" , href : "https://fonts.googleapis.com" } ,
44- { rel : "preconnect" , href : "https://fonts.gstatic.com" , crossorigin : true } ,
45- { href : "https://fonts.googleapis.com/css2?family=Open+Sans&display=swap" , rel : "stylesheet" } ,
46- { rel : "icon" , media : "(prefers-color-scheme: light)" , type : "image/x-icon" , href : "/dark-favicon.ico" } ,
47- { rel : "shortcut icon" , media : "(prefers-color-scheme: light)" , href : "/dark-favicon.ico" , type : "image/x-icon" } ,
48- { rel : "apple-touch-icon" , media : "(prefers-color-scheme: light)" , href : "/dark-apple-touch-icon.png" } ,
49- { rel : "apple-touch-icon" , media : "(prefers-color-scheme: light)" , sizes : "57x57" , href : "/dark-apple-touch-icon-57x57.png" } ,
50- { rel : "apple-touch-icon" , media : "(prefers-color-scheme: light)" , sizes : "72x72" , href : "/dark-apple-touch-icon-72x72.png" } ,
51- { rel : "apple-touch-icon" , media : "(prefers-color-scheme: light)" , sizes : "76x76" , href : "/dark-apple-touch-icon-76x76.png" } ,
52- { rel : "apple-touch-icon" , media : "(prefers-color-scheme: light)" , sizes : "114x114" , href : "/dark-apple-touch-icon-114x114.png" } ,
53- { rel : "apple-touch-icon" , media : "(prefers-color-scheme: light)" , sizes : "120x120" , href : "/dark-apple-touch-icon-120x120.png" } ,
54- { rel : "apple-touch-icon" , media : "(prefers-color-scheme: light)" , sizes : "144x144" , href : "/dark-apple-touch-icon-144x144.png" } ,
55- { rel : "apple-touch-icon" , media : "(prefers-color-scheme: light)" , sizes : "152x152" , href : "/dark-apple-touch-icon-152x152.png" } ,
56- { rel : "apple-touch-icon" , media : "(prefers-color-scheme: light)" , sizes : "180x180" , href : "/dark-apple-touch-icon-180x180.png" } ,
57- { rel : "icon" , media : "(prefers-color-scheme: dark)" , type : "image/x-icon" , href : "/light-favicon.ico" } ,
58- { rel : "shortcut icon" , media : "(prefers-color-scheme: dark)" , href : "/light-favicon.ico" , type : "image/x-icon" } ,
59- { rel : "apple-touch-icon" , media : "(prefers-color-scheme: dark)" , href : "/light-apple-touch-icon.png" } ,
60- { rel : "apple-touch-icon" , media : "(prefers-color-scheme: dark)" , sizes : "57x57" , href : "/light-apple-touch-icon-57x57.png" } ,
61- { rel : "apple-touch-icon" , media : "(prefers-color-scheme: dark)" , sizes : "72x72" , href : "/light-apple-touch-icon-72x72.png" } ,
62- { rel : "apple-touch-icon" , media : "(prefers-color-scheme: dark)" , sizes : "76x76" , href : "/light-apple-touch-icon-76x76.png" } ,
63- { rel : "apple-touch-icon" , media : "(prefers-color-scheme: dark)" , sizes : "114x114" , href : "/light-apple-touch-icon-114x114.png" } ,
64- { rel : "apple-touch-icon" , media : "(prefers-color-scheme: dark)" , sizes : "120x120" , href : "/light-apple-touch-icon-120x120.png" } ,
65- { rel : "apple-touch-icon" , media : "(prefers-color-scheme: dark)" , sizes : "144x144" , href : "/light-apple-touch-icon-144x144.png" } ,
66- { rel : "apple-touch-icon" , media : "(prefers-color-scheme: dark)" , sizes : "152x152" , href : "/light-apple-touch-icon-152x152.png" } ,
67- { rel : "apple-touch-icon" , media : "(prefers-color-scheme: dark)" , sizes : "180x180" , href : "/light-apple-touch-icon-180x180.png" } ,
68- ...canonicalLinks
69- ]
81+ { rel : 'manifest' , href : '/manifest.json' } ,
82+ {
83+ rel : 'sitemap' ,
84+ type : 'application/xml' ,
85+ title : 'Sitemap' ,
86+ href : '/sitemap.xml' ,
87+ } ,
88+ { rel : 'preconnect' , href : 'https://fonts.googleapis.com' } ,
89+ {
90+ rel : 'preconnect' ,
91+ href : 'https://fonts.gstatic.com' ,
92+ crossorigin : true ,
93+ } ,
94+ {
95+ href : 'https://fonts.googleapis.com/css2?family=Open+Sans&display=swap' ,
96+ rel : 'stylesheet' ,
97+ } ,
98+ {
99+ rel : 'icon' ,
100+ media : '(prefers-color-scheme: light)' ,
101+ type : 'image/x-icon' ,
102+ href : '/dark-favicon.ico' ,
103+ } ,
104+ {
105+ rel : 'shortcut icon' ,
106+ media : '(prefers-color-scheme: light)' ,
107+ href : '/dark-favicon.ico' ,
108+ type : 'image/x-icon' ,
109+ } ,
110+ {
111+ rel : 'apple-touch-icon' ,
112+ media : '(prefers-color-scheme: light)' ,
113+ href : '/dark-apple-touch-icon.png' ,
114+ } ,
115+ {
116+ rel : 'apple-touch-icon' ,
117+ media : '(prefers-color-scheme: light)' ,
118+ sizes : '57x57' ,
119+ href : '/dark-apple-touch-icon-57x57.png' ,
120+ } ,
121+ {
122+ rel : 'apple-touch-icon' ,
123+ media : '(prefers-color-scheme: light)' ,
124+ sizes : '72x72' ,
125+ href : '/dark-apple-touch-icon-72x72.png' ,
126+ } ,
127+ {
128+ rel : 'apple-touch-icon' ,
129+ media : '(prefers-color-scheme: light)' ,
130+ sizes : '76x76' ,
131+ href : '/dark-apple-touch-icon-76x76.png' ,
132+ } ,
133+ {
134+ rel : 'apple-touch-icon' ,
135+ media : '(prefers-color-scheme: light)' ,
136+ sizes : '114x114' ,
137+ href : '/dark-apple-touch-icon-114x114.png' ,
138+ } ,
139+ {
140+ rel : 'apple-touch-icon' ,
141+ media : '(prefers-color-scheme: light)' ,
142+ sizes : '120x120' ,
143+ href : '/dark-apple-touch-icon-120x120.png' ,
144+ } ,
145+ {
146+ rel : 'apple-touch-icon' ,
147+ media : '(prefers-color-scheme: light)' ,
148+ sizes : '144x144' ,
149+ href : '/dark-apple-touch-icon-144x144.png' ,
150+ } ,
151+ {
152+ rel : 'apple-touch-icon' ,
153+ media : '(prefers-color-scheme: light)' ,
154+ sizes : '152x152' ,
155+ href : '/dark-apple-touch-icon-152x152.png' ,
156+ } ,
157+ {
158+ rel : 'apple-touch-icon' ,
159+ media : '(prefers-color-scheme: light)' ,
160+ sizes : '180x180' ,
161+ href : '/dark-apple-touch-icon-180x180.png' ,
162+ } ,
163+ {
164+ rel : 'icon' ,
165+ media : '(prefers-color-scheme: dark)' ,
166+ type : 'image/x-icon' ,
167+ href : '/light-favicon.ico' ,
168+ } ,
169+ {
170+ rel : 'shortcut icon' ,
171+ media : '(prefers-color-scheme: dark)' ,
172+ href : '/light-favicon.ico' ,
173+ type : 'image/x-icon' ,
174+ } ,
175+ {
176+ rel : 'apple-touch-icon' ,
177+ media : '(prefers-color-scheme: dark)' ,
178+ href : '/light-apple-touch-icon.png' ,
179+ } ,
180+ {
181+ rel : 'apple-touch-icon' ,
182+ media : '(prefers-color-scheme: dark)' ,
183+ sizes : '57x57' ,
184+ href : '/light-apple-touch-icon-57x57.png' ,
185+ } ,
186+ {
187+ rel : 'apple-touch-icon' ,
188+ media : '(prefers-color-scheme: dark)' ,
189+ sizes : '72x72' ,
190+ href : '/light-apple-touch-icon-72x72.png' ,
191+ } ,
192+ {
193+ rel : 'apple-touch-icon' ,
194+ media : '(prefers-color-scheme: dark)' ,
195+ sizes : '76x76' ,
196+ href : '/light-apple-touch-icon-76x76.png' ,
197+ } ,
198+ {
199+ rel : 'apple-touch-icon' ,
200+ media : '(prefers-color-scheme: dark)' ,
201+ sizes : '114x114' ,
202+ href : '/light-apple-touch-icon-114x114.png' ,
203+ } ,
204+ {
205+ rel : 'apple-touch-icon' ,
206+ media : '(prefers-color-scheme: dark)' ,
207+ sizes : '120x120' ,
208+ href : '/light-apple-touch-icon-120x120.png' ,
209+ } ,
210+ {
211+ rel : 'apple-touch-icon' ,
212+ media : '(prefers-color-scheme: dark)' ,
213+ sizes : '144x144' ,
214+ href : '/light-apple-touch-icon-144x144.png' ,
215+ } ,
216+ {
217+ rel : 'apple-touch-icon' ,
218+ media : '(prefers-color-scheme: dark)' ,
219+ sizes : '152x152' ,
220+ href : '/light-apple-touch-icon-152x152.png' ,
221+ } ,
222+ {
223+ rel : 'apple-touch-icon' ,
224+ media : '(prefers-color-scheme: dark)' ,
225+ sizes : '180x180' ,
226+ href : '/light-apple-touch-icon-180x180.png' ,
227+ } ,
228+ ...canonicalLinks ,
229+ ] ,
70230 } ,
71231
72232 // Global CSS: https://go.nuxtjs.dev/config-css
73- css : [
74- "~/styles/global.scss"
75- ] ,
233+ css : [ '~/styles/global.scss' ] ,
76234
77235 // Plugins to run before rendering page: https://go.nuxtjs.dev/config-plugins
78- plugins : [
79- '~/plugins/cookie-injector.client.ts'
80- ] ,
236+ plugins : [ '~/plugins/cookie-injector.client.ts' ] ,
81237
82238 // Auto import components: https://go.nuxtjs.dev/config-components
83239 components : true ,
@@ -96,32 +252,39 @@ export default {
96252 modules : [
97253 // https://go.nuxtjs.dev/pwa
98254 '@nuxtjs/pwa' ,
99- '@nuxtjs/sitemap'
255+ '@nuxtjs/sitemap' ,
100256 ] ,
101257
102258 // PWA module configuration: https://go.nuxtjs.dev/pwa
103259 pwa : {
104260 manifest : {
105- lang : 'en'
106- }
261+ lang : 'en' ,
262+ } ,
107263 } ,
108264
109265 // sitemap autogeneration https://github.com/nuxt-community/sitemap-module
110266 sitemap : {
111- hostname : BASE_URL
267+ hostname : BASE_URL ,
112268 } ,
113269
114270 // Build Configuration: https://go.nuxtjs.dev/config-build
115271 build : {
116272 extractCSS : true ,
117273 extend ( config , { isClient } ) {
118- if ( isClient && process . env . NODE_ENV === "development" ) {
274+ if ( isClient && process . env . NODE_ENV === 'development' ) {
275+ config . resolve . alias . vscode = path . resolve (
276+ './node_modules/monaco-languageclient/lib/vscode-compatibility'
277+ )
278+ config . plugins . push (
279+ new MonacoWebpackPlugin ( {
280+ languages : [ 'javascript' ] ,
281+ features : [ 'coreCommands' , 'find' ] ,
282+ } )
283+ )
119284 config . devtool = 'source-map'
120285 }
121- }
286+ } ,
122287 } ,
123288
124- serverMiddleware : [
125- { path : '/test' , handler : '~/serverMiddleware/ok.js' } ,
126- ]
289+ serverMiddleware : [ { path : '/test' , handler : '~/serverMiddleware/ok.js' } ] ,
127290}
0 commit comments