Node.js 如何访问外部js文件中的Vue.prototype?
我在main.js中定义了属性:Node.js 如何访问外部js文件中的Vue.prototype?,node.js,vue.js,Node.js,Vue.js,我在main.js中定义了属性: "vue": "^2.4.4" 我在src/common中有另一个名为version.js的js文件 Object.defineProperties(Vue.prototype, { baseURL: { value: process.env.API_ROOT, writable: false } }); 我无法理解控制台日志: 原型1包含baseURL,但baseURL 1未定义。 原型2不包
"vue": "^2.4.4"
我在src/common中有另一个名为version.js的js文件
Object.defineProperties(Vue.prototype, {
baseURL: {
value: process.env.API_ROOT,
writable: false
}
});
我无法理解控制台日志:
原型1包含baseURL,但baseURL 1未定义。
原型2不包含baseURL,baseURL 2未定义
如果我想在version.js中获取baseURL。我该怎么办?第一个问题是,只有前缀为
VUE\u APP\u
的.env
属性才能将其放入捆绑文件中
请注意,只有NODE\u ENV
、BASE\u URL
和以VUE\u APP\u
开头的变量将通过webpack.DefinePlugin>静态嵌入到客户端包中
将.env
文件更改为
import Vue from "vue";
let app = new Vue({
el: "#app",
})
console.log("---------------------version start---------------------")
console.log("prototype 1:", Vue.prototype)
console.log("baseURL 1:", Vue.prototype.baseURL)
console.log("---------------------version end---------------------")
console.log("---------------------app start---------------------")
console.log("prototype 2:", app)
console.log("baseURL 2:", app.baseURL)
console.log("---------------------app end---------------------")
第二,这正是我们的目的
通过将某些Vue实例方法附加到Vue.prototype,添加它们
你可以很简单地这样做
//base-url-plugin.js
导出默认值{
安装:Vue=>{
Object.defineProperty(Vue.prototype,“baseURL”{
值:process.env.VUE_APP_API_ROOT??”https://some-default/",
可写:false
})
}
}
从“Vue”导入Vue
从“/path/to/base-url-plugin.js”导入baseUrlPlugin
//首先安装插件
使用(baseUrlPlugin)
//现在创建您的根Vue实例
让应用程序=新Vue({
el:“应用程序”,
})
您只需确保在创建根Vue实例之前安装了插件。如何确保在创建根Vue实例之前安装了我的插件?这是您的代码员,只需确保您运行Vue。请在让app=new Vue({…})
之前使用({…})
位。我已经更新了我的答案,试图让它更清晰,就像JavaSpringbeans一样,我可以初始化任何常见的地方。然后我可以在整个项目中使用它。我真的不理解你的问题。上面的代码只在一个地方
VUE_APP_API_ROOT=https://whatever/