找不到相关模块:vue-lottie
relative module was not found: vue-lottie
在使用 vue-cli (3.0.0-rc.5) 重新构建后,无法到达 lottie 模块的路径。我应该使用配置吗?
- ./lottie.vue 在./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref-- 0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/HelloWorld.vue?vue&type=script&lang=js&
<template>
<div id="app">
<lottie :options="defaultOptions" :height="400" :width="400" v-on:animCreated="handleAnimation"/>
<div>
<p>Speed: x{{animationSpeed}}</p>
<input type="range" value="1" min="0" max="3" step="0.5"
v-on:change="onSpeedChange" v-model="animationSpeed">
</div>
<button v-on:click="stop">stop</button>
<button v-on:click="pause">pause</button>
<button v-on:click="play">play</button>
</div>
<script>
import Lottie from './lottie.vue';
import * as animationData from './assets/data.json';
export default {
name: 'app',
components: {
'lottie': Lottie
},
data() {
return {
defaultOptions: {animationData: animationData},
animationSpeed: 1
}
},
methods: {
handleAnimation: function (anim) {
this.anim = anim;
},
stop: function () {
this.anim.stop();
},
play: function () {
this.anim.play();
},
pause: function () {
this.anim.pause();
},
onSpeedChange: function () {
this.anim.setSpeed(this.animationSpeed);
}
}
}
</script>
如果您使用的是 vue-lottie
包,那么导入应该是
import Lottie from 'vue-lottie';
这是因为 lottie 包位于 node_modules 文件夹中,您必须提供正确的路径或使用直接包名导入。
附带一提,我相信 Vue cli 的当前版本是 v3.1.1
所以你绝对应该升级。
如果还是不行,在 defaultOptions
中将 animationData 更改为 animationData.default
defaultOptions: { animationData: animationData.default }
在使用 vue-cli (3.0.0-rc.5) 重新构建后,无法到达 lottie 模块的路径。我应该使用配置吗?
- ./lottie.vue 在./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref-- 0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/HelloWorld.vue?vue&type=script&lang=js&
<template>
<div id="app">
<lottie :options="defaultOptions" :height="400" :width="400" v-on:animCreated="handleAnimation"/>
<div>
<p>Speed: x{{animationSpeed}}</p>
<input type="range" value="1" min="0" max="3" step="0.5"
v-on:change="onSpeedChange" v-model="animationSpeed">
</div>
<button v-on:click="stop">stop</button>
<button v-on:click="pause">pause</button>
<button v-on:click="play">play</button>
</div>
<script>
import Lottie from './lottie.vue';
import * as animationData from './assets/data.json';
export default {
name: 'app',
components: {
'lottie': Lottie
},
data() {
return {
defaultOptions: {animationData: animationData},
animationSpeed: 1
}
},
methods: {
handleAnimation: function (anim) {
this.anim = anim;
},
stop: function () {
this.anim.stop();
},
play: function () {
this.anim.play();
},
pause: function () {
this.anim.pause();
},
onSpeedChange: function () {
this.anim.setSpeed(this.animationSpeed);
}
}
}
</script>
如果您使用的是 vue-lottie
包,那么导入应该是
import Lottie from 'vue-lottie';
这是因为 lottie 包位于 node_modules 文件夹中,您必须提供正确的路径或使用直接包名导入。
附带一提,我相信 Vue cli 的当前版本是 v3.1.1
所以你绝对应该升级。
如果还是不行,在 defaultOptions
中将 animationData 更改为 animationData.defaultdefaultOptions: { animationData: animationData.default }