是否可以在文件夹中导入*.vue文件?

kas*_*lli 4 javascript php vue.js vue-component

我讨厌在代码中重复一些事情.现在我在main.js中导入这样的vue文件.

import Default     from '../../src/components/default.vue';
import Home        from '../../src/components/home.vue';
import hakkinda    from '../../src/components/hakkinda.vue';
import projeler    from '../../src/components/projeler.vue';
import servisler   from '../../src/components/servisler.vue';
import yetenekler  from '../../src/components/yetenekler.vue';
import yetenek     from '../../src/components/yetenek.vue';
import referanslar from '../../src/components/referanslar.vue';
import iletisim    from '../../src/components/iletisim.vue';
Run Code Online (Sandbox Code Playgroud)

有没有办法用更少的线做同样的事情?如果我可以从filename分配变量名称,那可能会很棒.PHP可以帮忙吗?但那么如何编译main.js?我没弄明白.

Pot*_*ray 5

我在名为"index.js"的文件中使用此脚本来"导出当前文件夹中每个文件中的默认所有导出的默认值"这样的事情:

const files = require.context('.', false, /\.js$/)
const modules = {}
files.keys().forEach((key) => {
  if (key === './index.js') return
  modules[ key.replace(/(\.\/|\.js)/g, '') ] = files(key).default
})
export default modules
Run Code Online (Sandbox Code Playgroud)

然后你可以通过导入它的名字来导入整个目录,就像这样:

import folder from '../path/to/folder'
Run Code Online (Sandbox Code Playgroud)

我希望这有帮助.

  • 我不得不更换一些东西才能让它发挥作用.`files(key).default` with`files(key)`.`require.context('.',false,/ \.js $ /)```require.context('.',false,/ \.vue $ /)`.`key.replace(/(\.\/ |\.vue)/ g,'')```key.replace(/(\.\/ |\.vue)/ g,'')`.谢谢. (2认同)