diff --git a/.eslintrc.js b/.eslintrc.js
index 938bbd7..a15b65c 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -8,7 +8,8 @@ module.exports = {
],
globals: {
defineEmits: true,
- defineProps: true
+ defineProps: true,
+ __APP_ENV__: true
},
rules: {
'vue/no-v-html': 'off'
diff --git a/src/config/api.yml b/config/api.yml
similarity index 100%
rename from src/config/api.yml
rename to config/api.yml
diff --git a/src/config/copyright.yml b/config/copyright.yml
similarity index 100%
rename from src/config/copyright.yml
rename to config/copyright.yml
diff --git a/src/config/header.yml b/config/header.yml
similarity index 100%
rename from src/config/header.yml
rename to config/header.yml
diff --git a/src/config/mapping.yml b/config/mapping.yml
similarity index 100%
rename from src/config/mapping.yml
rename to config/mapping.yml
diff --git a/src/config/project.yml b/config/project.yml
similarity index 100%
rename from src/config/project.yml
rename to config/project.yml
diff --git a/src/config/router.yml b/config/router.yml
similarity index 100%
rename from src/config/router.yml
rename to config/router.yml
diff --git a/config/vendor/tailwind.config.js b/config/vendor/tailwind.config.js
new file mode 100644
index 0000000..4bb6b81
--- /dev/null
+++ b/config/vendor/tailwind.config.js
@@ -0,0 +1,5 @@
+module.exports = {
+ presets: [
+ require('../../tailwind.config.js')
+ ]
+}
diff --git a/package-lock.json b/package-lock.json
index c569942..eeddc31 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,6 +9,7 @@
"version": "0.0.0",
"dependencies": {
"axios": "^0.27.2",
+ "js-yaml": "^4.1.0",
"leaflet": "^1.8.0",
"vue": "^3.2.37",
"vue-router": "^4.1.2"
@@ -535,8 +536,7 @@
"node_modules/argparse": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
},
"node_modules/asap": {
"version": "2.0.6",
@@ -2669,7 +2669,6 @@
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "dev": true,
"dependencies": {
"argparse": "^2.0.1"
},
@@ -4919,8 +4918,7 @@
"argparse": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
},
"asap": {
"version": "2.0.6",
@@ -6380,7 +6378,6 @@
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "dev": true,
"requires": {
"argparse": "^2.0.1"
}
diff --git a/package.json b/package.json
index 4054bba..5d7b99e 100644
--- a/package.json
+++ b/package.json
@@ -9,6 +9,7 @@
},
"dependencies": {
"axios": "^0.27.2",
+ "js-yaml": "^4.1.0",
"leaflet": "^1.8.0",
"vue": "^3.2.37",
"vue-router": "^4.1.2"
diff --git a/src/components/Layout/LayoutFooter.vue b/src/components/Layout/LayoutFooter.vue
index ec3123b..09af82d 100644
--- a/src/components/Layout/LayoutFooter.vue
+++ b/src/components/Layout/LayoutFooter.vue
@@ -74,19 +74,13 @@
diff --git a/src/components/Layout/LayoutHeader.vue b/src/components/Layout/LayoutHeader.vue
index 3a9f7b6..d76e769 100644
--- a/src/components/Layout/LayoutHeader.vue
+++ b/src/components/Layout/LayoutHeader.vue
@@ -90,18 +90,12 @@
\ No newline at end of file
diff --git a/src/components/Map/VMap.vue b/src/components/Map/VMap.vue
index 3e03977..f3e2e42 100644
--- a/src/components/Map/VMap.vue
+++ b/src/components/Map/VMap.vue
@@ -21,7 +21,6 @@ import iconRetina from 'leaflet/dist/images/marker-icon-2x.png'
import iconUrl from 'leaflet/dist/images/marker-icon.png'
import shadowUrl from 'leaflet/dist/images/marker-shadow.png'
import geojsonDefaultOptions from './utils/geojsonOptions'
-import mappingConfiguration from '@/config/mapping.yml'
delete L.Icon.Default.prototype._getIconUrl
@@ -31,7 +30,7 @@ L.Icon.Default.mergeOptions({
shadowUrl: shadowUrl
})
-const { map_server_tils } = mappingConfiguration
+const { map_server_tils } = __APP_ENV__
const props = defineProps({
zoomAnimate: {
diff --git a/src/config/vendor/tailwind.config.js b/src/config/vendor/tailwind.config.js
deleted file mode 100644
index c63433b..0000000
--- a/src/config/vendor/tailwind.config.js
+++ /dev/null
@@ -1,5 +0,0 @@
-module.exports = {
- presets: [
- require('../../../tailwind.config.js')
- ]
-}
diff --git a/src/constants/configPaths.js b/src/constants/configPaths.js
index 331688b..2f07751 100644
--- a/src/constants/configPaths.js
+++ b/src/constants/configPaths.js
@@ -1,4 +1,4 @@
module.exports = {
- userTailwindConfigPath: './src/config/vendor/tailwind.config.js',
+ userTailwindConfigPath: './config/vendor/tailwind.config.js',
defaultTailwindConfigPath: './tailwind.config.js'
}
diff --git a/src/router/index.js b/src/router/index.js
index b52cc8c..3d394f4 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -6,7 +6,7 @@ import {
import otusRoutes from '@/modules/otus/router'
import dynamicRoutes from '~pages'
-import routerConfiguration from '@/config/router.yml'
+import routerConfiguration from '../../config/router.yml'
const { base_url, hash_mode } = routerConfiguration
diff --git a/src/utils/loadConfiguration.js b/src/utils/loadConfiguration.js
new file mode 100644
index 0000000..97d76a5
--- /dev/null
+++ b/src/utils/loadConfiguration.js
@@ -0,0 +1,10 @@
+import fs from 'fs'
+import yaml from 'js-yaml'
+import glob from 'glob'
+
+export const loadConfiguration = appPath => {
+ const filePaths = glob.sync(appPath + '/config/*.yml', {})
+ const jsonConfig = filePaths.map(filepath => yaml.load(fs.readFileSync(filepath, 'utf8')))
+
+ return Object.assign({}, ...jsonConfig)
+}
diff --git a/src/utils/parseEnvConfig.js b/src/utils/parseEnvConfig.js
new file mode 100644
index 0000000..e69de29
diff --git a/src/utils/request.js b/src/utils/request.js
index 816646f..00e6b14 100644
--- a/src/utils/request.js
+++ b/src/utils/request.js
@@ -1,10 +1,9 @@
import axios from 'axios'
-import requiredConfiguration from '@/config/api.yml'
const {
url,
project_token
-} = requiredConfiguration
+} = __APP_ENV__
const makeAPIRequest = axios.create({
baseURL: url,
diff --git a/vite.config.js b/vite.config.js
index 1b2dfe2..8e9e3c4 100644
--- a/vite.config.js
+++ b/vite.config.js
@@ -1,16 +1,20 @@
import { defineConfig, loadEnv } from 'vite'
+import { loadConfiguration } from './src/utils/loadConfiguration.js'
import Vue from '@vitejs/plugin-vue'
import Markdown from 'vite-plugin-md'
import path from 'path'
import Pages from 'vite-plugin-pages'
import Content from '@originjs/vite-plugin-content'
-// https://vitejs.dev/config/
export default ({ mode }) => {
const { VITE_BASE_URL } = loadEnv(mode, process.cwd())
return defineConfig({
base: VITE_BASE_URL,
+ define: {
+ __APP_ENV__: loadConfiguration(__dirname),
+ __APP_PATH__: () => __dirname
+ },
resolve: {
alias: {
'@': path.resolve(__dirname, './src')