首页 > 解决方案 > Vuejs - 无法解析 'app/src' 中的 'moment' | 在项目克隆和 npm install 之后

问题描述

我克隆了一个现有的 Vuejs 项目并进行了“npm install”。除了“moment”和“vue-moment”之外,一切都安装得很好。

我有这个错误:

Failed to compile.
./src/main.js
Module not found: Error: Can't resolve 'moment' in '/app/src'

所以用“npm install --save moment vue-moment”安装它们

并且仍然得到错误。

这是我的 main.js 文件的一些代码:

import moment from 'moment'
import VueMoment from 'vue-moment'

// Vue use moment.js
Vue.use(VueMoment, {
  moment
});
moment.locale('fr');

这些包已安装并存在于 node_modules 文件夹中,也存在于 package.log.json 和 package.json 中。

奇怪的是,当其他人克隆这个项目时,他们没有问题。只有我...

一个(可能)pist,是当我将鼠标悬停在(导入的)“时刻”时,我看到了这个:.../node_modules/moment/moment 就像有 2 个时刻文件夹,但它在 node_modules 中看起来很正常文件夹。

提前致谢!

编辑解决:

问题是因为我在前面使用“docker-compose up”而不是“npm run serve”来启动项目。它开始了,但我遇到了这个“时刻”问题。现在它可以很好地与良好的控制台代码一起启动项目......

标签: vue.jsnpmmomentjs

解决方案


您不能将 import 函数与 moment.js 一起使用,因为未为该模块定义导出。所以你必须使用require。你可以这样做 :

Vue.use(require('vue-moment'));

如果你真的想通过 import 使用 moment.js,你也可以这样做。

import * as moment from 'moment';

参考:https ://www.npmjs.com/package/vue-moment

https://momentjs.com/docs/

Webpack / typescript 要求有效,但导入无效


推荐阅读