例如,我有一个app.js
和一个store.js
。完成npm run dev
之后,我得到一个.js,可以将其包含在包含<div>
现在我想要的是使用javascript之类的方法从外部更改state.baseurl
:
var options = {
baseurl: 'http://www.domain.co/'
}
那有可能吗,我该如何实现呢?
App.js
window.Vue = require('vue')
import store from './store'
import adrescheck from '../../../../../../../../resources/assets/js/vuecomponenten/components/check'
Vue.component('check', check)
import app from './app.vue'
const app = new Vue({
el: '#app',
store,
render: h => h(app)
});
Store.js
window.Vue = require('vue');
import Vuex from 'vuex'
Vue.use(Vuex)
const store = {
state: {
baseurl: 'http://www.domain.nl/'
}
}
export default new Vuex.Store(
store
);
编辑:
当我执行npm时,运行watch-poll / dev / prod会生成一个.js并将其与webpack一起复制到公共文件夹中。从另一个域中,我要包含此js 并且要从该域中操作state.baseurl。因此依赖注入。
答案 0 :(得分:0)
如果我理解正确,我认为最好的方法就是使用webpack define plugin。
传递给DefinePlugin的每个键是一个标识符或多个 与..
相连的标识符如果该值是字符串,它将用作代码片段。如果 value不是一个字符串,它将被字符串化(包括函数)。如果 该值是一个对象,所有键的定义方式相同。如果你 将typeof作为键的前缀,仅为typeof调用定义。的 值将内联到代码中,从而允许缩小 删除多余的条件。
new webpack.DefinePlugin({
PRODUCTION: JSON.stringify(true),
VERSION: JSON.stringify('5fa3b9'),
BROWSER_SUPPORTS_HTML5: true,
TWO: '1+1',
'typeof window': JSON.stringify('object'),
'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV)
});
然后用js
if (!PRODUCTION) {
console.log('Debug info');
}
if (PRODUCTION) {
console.log('Production log');
}