Wydaje się to głupi, ale mam to w ten sposób:

W config/index.js:

module.exports = {
    API_LOCATION: 'http://localhost:8080/api/'
}

Następnie w src/app.js mam:

import Vue from 'vue'
import VueRouter from 'vue-router'
import VueResource from 'vue-resource';

Vue.use(VueRouter);
Vue.use(VueResource);

const App = require("./app.vue");
const home = require("./components/home.vue");
const config = require('../config');
window.config = config;

Następnie w src/components/home.vue, mam blok skryptu, który go używa:

<script>
    module.exports = {
        data: function() {
            return {
                obj: null
            }
        },
        created: function() {
            this.$http.get(config.API_LOCAITON + '/call').then(res => {
                // Do some business
            }, res => {
                // Handle some error
            });
        }
    }
</script>

To działa, ale uderza mnie jako zły pomysł, aby użyć window, aby obsługiwać konfigurację aplikacji. Jakie jest tutaj bardziej podejście kanoniczne?

11
Wells 25 czerwiec 2017, 22:51

3 odpowiedzi

Najlepsza odpowiedź

Zaimportuj go.

<script>
    import config from "../config"

    module.exports = {
        data: function() {
            return {
                obj: null
            }
        },
        created: function() {
            this.$http.get(config.API_LOCATION + '/call').then(res => {
                // Do some business
            }, res => {
                // Handle some error
            });
        }
    }
</script>

Lub tylko lokalizacja.

<script>
    import { API_LOCATION } from "../config"

    module.exports = {
        data: function() {
            return {
                obj: null
            }
        },
        created: function() {
            this.$http.get(API_LOCATION + '/call').then(res => {
                // Do some business
            }, res => {
                // Handle some error
            });
        }
    }
</script>
11
Fábio ZC 16 styczeń 2018, 12:29

Wystarczy ustawić ścieżkę IP (lub Localhost) w lokalnej pamięci podczas logowania udanego i uzyskaj wartość z lokalnego przechowywania, w którym potrzebujesz projektu. tutaj, jak ustawiłeś wartość w Localstorage.

// Set value in IpAdress localstorage.setItem('IpAddress','192.168.100.100:8080');

// Get value from IpAddress localstorage.getItem('IpAddress');

W moim przypadku cała ścieżka wygląda jak: localstorage.getItem('IpAddress')+/api/controller/method|

-2
henser 28 sierpień 2018, 13:51

Prod: config/prod.env.js dołącz swój VAR='"value"'

'use strict'
module.exports = {
  NODE_ENV: '"production"',
  API_LOCATION: '"https://production URL"'
}

Dev: config/dev.env.js Dołącz swój VAR='"value"'

'use strict'
const merge = require('webpack-merge')
const prodEnv = require('./prod.env')

module.exports = merge(prodEnv, {
  NODE_ENV: '"development"',
  API_LOCATION: '"http://localhost"'
})

Twoja zmienna będzie dostępna w process.env.API_LOCATION lub process.env.VAR_NAME

4
erajuan 7 wrzesień 2018, 17:12