在 JS 中需要 Vue 组件

Require Vue component in JS

我正在创建一个包含 Vue 组件的对象。

当我通过字符串而不是直接作为参数需要 Vue 组件时,我遇到了问题。

// Not working
const vueComponentPath = 'C:\Users\username\Desktop\about-page.vue'
const vueComponent = require(vueComponentPath).default

componentsToMount[componentName] = vueComponent

抛出错误:

Cannot find module 'C:\Users\username\Desktop\about-page.vue'

虽然效果很好:

// Working
const vueComponent = require('C:\Users\username\Desktop\about-page.vue').default
componentsToMount[componentName] = vueComponent

我不明白为什么我的第一个例子不起作用。我需要 require 来接受我的字符串路径。

我也尝试了以下但都给出了相同的错误消息:

const vueComponentPath = 'C:/Users/username/Desktop/about-page.vue'

const vueComponent = require(vueComponentPath).default
componentsToMount[componentName] = vueComponent

const vueComponentPath = 'C:/Users/username/Desktop/about-page.vue'

const vueComponent = require(path.resolve(vueComponentPath)).default
componentsToMount[componentName] = vueComponent

现在可以正常工作了。

需要使用相对路径。

const vueComponent = require('../about-page.vue').default
componentsToMount[componentName] = vueComponent