Vue.js 使用webpack全局包含javascript

Vue.js 使用webpack全局包含javascript,vue.js,vuejs2,Vue.js,Vuejs2,我正在使用webpack和Vuejs。我的应用程序中有几个组件,我想在全球范围内使用momentjs。到目前为止,我所尝试的一切似乎都不起作用,并在控制台中抛出和Undefined错误。是否有一种方法可以使用webpack从main.js获取setmoment.js全局可用的所有组件 以下是我尝试过的东西(在main.js): 在一个组件中,我试图通过this.$moment访问它,但得到一个未定义的错误 我还尝试: import moment from 'moment'; Object.de

我正在使用webpack和Vuejs。我的应用程序中有几个组件,我想在全球范围内使用
momentjs
。到目前为止,我所尝试的一切似乎都不起作用,并在控制台中抛出和
Undefined
错误。是否有一种方法可以使用webpack从
main.js
获取set
moment.js
全局可用的所有组件

以下是我尝试过的东西(在
main.js
):

在一个组件中,我试图通过
this.$moment
访问它,但得到一个未定义的错误

我还尝试:

import moment from 'moment';

Object.definePrototype(Vue.prototype, '$moment', { value: moment });
我还试图通过
this.$moment
访问它,但在
this.$moment
上得到相同的
未定义的
错误

我是否遗漏了一个步骤,或者在使用webpack将javascript文件全局包含到所有组件中时出错了

再次感谢你的帮助

更新

顺便说一句,
momentjs
如果我在我想使用它的每个组件中都导入它,那么它就可以很好地工作(不过,这正是我试图避免的):

更新2*

这就是确切的错误(使用
This.
):

这是错误(未使用此。
):

通过
package.json
中的
依赖项添加力矩:

...
"babel-plugin-syntax-dynamic-import": "^6.18.0",
"babel-plugin-transform-class-properties": "^6.24.1",
"babel-plugin-transform-runtime": "^6.23.0",
"babel-preset-env": "^1.6.0",
"css-loader": "^0.28.5",
"es6-promise": "^4.1.1",
"moment": "^2.18.1",
...
组件中的代码用法:

...
filters: {
    getYear(date) {
      return this.$moment(date).format('YYYY');
    },
    getMonth(date) {
      return this.$moment(date).format('MMM');
    },
    getDay(date) {
      return this.$moment(date).format('D');
    },
 },
 ...

这应该是有效的。你现在肯定已经安装好了?你得到的确切错误是什么?你能分享一个例子,说明你在哪里试图访问这个。$moment
?如果我使用import在每个组件中包含moment,它工作得很好。但是在全球范围内建立它是行不通的,我会跟着你。但是,你得到的确切错误是什么?您可以分享一个您试图访问
此。$moment
的示例吗?请参阅上面的更新。因此,该错误意味着
未定义,而不是
$moment
。你能展示一下组件的其余部分吗?您使用的是Vue v1还是v2?这应该可以正常工作。你现在肯定已经安装好了?你得到的确切错误是什么?你能分享一个例子,说明你在哪里试图访问这个。$moment
?如果我使用import在每个组件中包含moment,它工作得很好。但是在全球范围内建立它是行不通的,我会跟着你。但是,你得到的确切错误是什么?您可以分享一个您试图访问
此。$moment
的示例吗?请参阅上面的更新。因此,该错误意味着
未定义,而不是
$moment
。你能展示一下组件的其余部分吗?您使用的是Vue v1还是v2?
Error in render function: "TypeError: Cannot read property '$moment' of undefined"
Error in render function: "ReferenceError: $moment is not defined"
...
"babel-plugin-syntax-dynamic-import": "^6.18.0",
"babel-plugin-transform-class-properties": "^6.24.1",
"babel-plugin-transform-runtime": "^6.23.0",
"babel-preset-env": "^1.6.0",
"css-loader": "^0.28.5",
"es6-promise": "^4.1.1",
"moment": "^2.18.1",
...
...
filters: {
    getYear(date) {
      return this.$moment(date).format('YYYY');
    },
    getMonth(date) {
      return this.$moment(date).format('MMM');
    },
    getDay(date) {
      return this.$moment(date).format('D');
    },
 },
 ...