Попытка использовать VUE с TS-узла

Я пришел к моменту, когда я с удовольствием импортировал бы файл.vue в свой серверный код. Глубоко, я пока не использую экспорт файлов *.vue, но некоторый код является общим для клиентской и серверной сторон и ссылается на эти файлы.

Сейчас я использую ts-node для dev/debug и использую webpack для связывания моего клиентского кода с моими *.vue файлами.

Я перепробовал много решений, но не нашел ни одного действительно работающего - даже.d.ts, упомянутый в tsConfig.json

declare module '*.vue' {
    import Vue = require('vue')
    const value: Vue.ComponentOptions<Vue>
    export default value
}

Кто-нибудь знает элегантное решение, или я должен просто уйти в отставку, чтобы использовать веб-пакет также для серверной части? (У меня есть колебания, так как компиляция уже довольно медленная, только на стороне клиента)

1 ответ

Я бы предложил извлечь код, общий для клиента и сервера, в отдельный каталог или пакет, после чего вы можете импортировать этот код как в серверный, так и в клиентский код.

Я не уверен , как вы настроили проект, но один из способов подойти к этому было бы использовать установку monorepo (вы можете проверить Lerna , НУЮ рабочие области, пряжа рабочих пространств ). Другой подход - поместить общий код в каталог, который действует как собственный пакет npm, с собственным файлом package.json. Затем из файлов package.json в коде клиента и сервера вы можете ссылаться на общий пакет как на зависимость и использовать файл: ../ path / to / common url, чтобы указать на локальный каталог из вашего каталога npm.

Другие вопросы по тегам