174 lines
4.2 KiB
JavaScript
174 lines
4.2 KiB
JavaScript
const webpack = require("webpack")
|
|
// const serverPort = 9964 || process.env.PORT
|
|
const serverPort = 8959 || process.env.PORT
|
|
const fs = require('fs')
|
|
|
|
export default {
|
|
|
|
// Global page headers: https://go.nuxtjs.dev/config-head
|
|
head: {
|
|
title: 'کافه و رستوران برگ',
|
|
htmlAttrs: {
|
|
lang: 'fa'
|
|
},
|
|
meta: [
|
|
{charset: 'utf-8'},
|
|
{name: 'viewport', content: 'width=device-width, initial-scale=1'},
|
|
{hid: 'description', name: 'description', content: ''},
|
|
{name: 'theme-color', content: '#8DC640'}
|
|
],
|
|
link: [
|
|
{rel: 'icon', type: 'image/x-icon', href: '/favicon.png'}
|
|
],
|
|
script: [
|
|
{src: '/js/lightBox/simple-lightbox.min.js'},
|
|
{src: '/js/socket.io.js'},
|
|
{src: '/js/chart.min.js'},
|
|
{src: 'https://unpkg.com/wavesurfer.js'}
|
|
]
|
|
},
|
|
loading: {color: '#fff'},
|
|
|
|
// Global CSS: https://go.nuxtjs.dev/config-css
|
|
css: [
|
|
'element-ui/lib/theme-chalk/index.css',
|
|
'slick-carousel/slick/slick.css',
|
|
'slick-carousel/slick/slick-theme.css',
|
|
'~/assets/css/bootstrap-grid.css',
|
|
'~/assets/css/reset-css.css',
|
|
'~/assets/css/fontawesome/css/all.min.css',
|
|
'~/static/js/lightBox/simple-lightbox.min.css',
|
|
'~/assets/scss/main.scss'
|
|
],
|
|
|
|
// Plugins to run before rendering page: https://go.nuxtjs.dev/config-plugins
|
|
plugins: [
|
|
'@/plugins/element-ui',
|
|
'@/plugins/gsap.client',
|
|
'@/plugins/core-ui.client',
|
|
'@/plugins/datePicker.client',
|
|
'@/plugins/scrollMagic.client',
|
|
{src: '@/plugins/mapir.js', ssr: false}
|
|
],
|
|
|
|
// Auto import components: https://go.nuxtjs.dev/config-components
|
|
components: [
|
|
'~/components/',
|
|
{path: '~/components/admin/', prefix: ''}
|
|
],
|
|
|
|
// Modules for dev and build (recommended): https://go.nuxtjs.dev/config-modules
|
|
buildModules: [],
|
|
|
|
// Modules: https://go.nuxtjs.dev/config-modules
|
|
modules: [
|
|
// https://go.nuxtjs.dev/axios
|
|
'@nuxtjs/axios',
|
|
'@nuxtjs/auth-next',
|
|
'@nuxtjs/firebase',
|
|
'~/modules/WebSocketServer.js',
|
|
],
|
|
|
|
firebase: {
|
|
// For Firebase JS SDK v7.20.0 and later, measurementId is optional
|
|
config: {
|
|
apiKey: "AIzaSyB6PlyAxtiuc3Lr8PM5y2W8E_KxWrXDSkI",
|
|
authDomain: "barg-336706.firebaseapp.com",
|
|
projectId: "barg-336706",
|
|
storageBucket: "barg-336706.appspot.com",
|
|
messagingSenderId: "889370893165",
|
|
appId: "1:889370893165:web:198f891c6c49fc13a09864",
|
|
measurementId: "G-C91HQP1H4V"
|
|
},
|
|
services: {
|
|
messaging: {
|
|
createServiceWorker: true,
|
|
fcmPublicVapidKey: 'BASl8F_cCRHQWCpI_VePGRuv6G3zarylKv0wDdJOUH-IntZl90jznyHGWL6fuCNbm8yHnCFzNrIagvDWoDMaG2M',
|
|
inject: `self.addEventListener('push', function (e) {
|
|
console.log('test*******************************')
|
|
data = e.data.json();
|
|
var options = {
|
|
body: data.notification.body,
|
|
icon: '/favicon.png',
|
|
vibrate: [100, 50, 100],
|
|
data: {
|
|
dateOfArrival: Date.now(),
|
|
primaryKey: '2'
|
|
},
|
|
};
|
|
e.waitUntil(
|
|
self.registration.showNotification(data.notification.title, options)
|
|
);
|
|
});
|
|
`,
|
|
}
|
|
}
|
|
},
|
|
|
|
// Axios module configuration: https://go.nuxtjs.dev/config-axios
|
|
axios: {
|
|
proxy: true
|
|
},
|
|
proxy: {
|
|
'/api': {target: `http://0.0.0.0:${serverPort}`}
|
|
},
|
|
// Build Configuration: https://go.nuxtjs.dev/config-build
|
|
build: {
|
|
extend(config, ctx) {
|
|
config.module.rules.push({
|
|
test: /\.(ogg|mp3|wav|mpe?g)$/i,
|
|
loader: 'file-loader',
|
|
options: {
|
|
name: '[path][name].[ext]'
|
|
}
|
|
})
|
|
},
|
|
babel: {
|
|
plugins: [
|
|
['@babel/plugin-proposal-private-methods', {loose: true}],
|
|
["@babel/plugin-proposal-private-property-in-object", {"loose": true}]
|
|
]
|
|
},
|
|
transpile: [/^element-ui/],
|
|
plugins: [
|
|
new webpack.ProvidePlugin({
|
|
$: 'jquery',
|
|
jQuery: 'jquery',
|
|
'window.jQuery': 'jquery'
|
|
})
|
|
],
|
|
splitChunks: {
|
|
layouts: true
|
|
},
|
|
},
|
|
router: {
|
|
linkActiveClass: 'active-link',
|
|
middleware: ['redirects']
|
|
},
|
|
serverMiddleware: ['~/server/index.js'],
|
|
server: {
|
|
host: '0.0.0.0',
|
|
port: serverPort
|
|
},
|
|
auth: {
|
|
strategies: {
|
|
local: {
|
|
token: {
|
|
property: 'token',
|
|
required: true,
|
|
type: ''
|
|
},
|
|
user: {
|
|
property: 'user',
|
|
autoFetch: true
|
|
},
|
|
endpoints: {
|
|
login: {url: '/api/auth/login', method: 'post'},
|
|
logout: {url: '/api/auth/logout', method: 'delete'},
|
|
user: {url: '/api/auth/user', method: 'get'}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|