Я импортировал компонент Vue из пакета tarball, но у меня появляется ошибка об использовании зависимости в этом компоненте? - PullRequest
0 голосов
/ 03 июля 2019

Привет! Я создал небольшой компонент с именем Test.vue (в качестве зависимости используется vue-lodash) и использовал npm pack для создания архива проекта (test-project), так как я хотел бы протестировать пакет локально перед опубликовать его в NPM. Затем у меня есть второй проект (hello-world-project), в который я установил тарбол (test-project-1.0.0.tgz), который появляется в моем package.json штрафе. Затем я импортирую компонент Test.vue в мой HelloWorld.vue компонент, но получаю следующую ошибку [Vue warn]: Error in render: "TypeError: Cannot read property 'upperCase' of undefined"

Как мне с этим разобраться?

Я перепробовал все виды онлайн-решений, но ничего не работает.

тест-проект - App.vue

import Vue from 'vue'
import VueLodash from 'vue-lodash'

Vue.use(VueLodash, { name: 'lodash' })

import App from './App.vue'

new Vue({
  render: h => h(App)
}).$mount('#app')

тест-проект - Test.vue

<template>
  <div>{{ test }}</div>
</template>

<script>
  export default {
    name: 'Test',
    props: {
      text: String
    },
    computed: {
        test() {
            return this.lodash.upperCase(this.text)  
        }
    }
  }
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>

</style>

hello-world-project - HelloWorld.vue

<template>
  <div>
    <h1>Hello World</h1>

    <Test text="this is a test string" />
  </div>
</template>

<script lang="ts">
import { Component, Vue } from "vue-property-decorator";
import Test from "../../node_modules/test-project/src/components/Test.vue";

@Component({
    components: { Test }
})
export default class HelloWorld extends Vue {

}
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->

</style>

Я ожидаю, что компонент Test.vue отобразит введенный текст заглавными буквами.

...