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

问题描述:

我讨厌在代码中重复一些事情。现在我在main.js中导入这样的vue文件。是否可以导入文件夹中的* .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'; 

有没有办法用较少的线做同样的事情?如果我可以从文件名分配变量名称,那会很棒。 PHP可以提供帮助吗?但那如何编译main.js?我没有想到。

+0

你使用的是Webpack吗? –

+0

不,我正在使用vue-cli进行编译。但我想我可以在编译时分配一个配置文件。它有帮助吗? – kastelli

+0

Vue CLI使用webpack。 –

我使用这个脚本在一个名为“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 

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

import folder from '../path/to/folder' 

我希望这有助于。

+2

我不得不更换一些东西才能使其工作。 '文件(key).default'和'files(key)'。 'require.context('。',false,/ \。js $ /)'with'require.context('。',false,/ \。vue $ /)'。 'key.replace(/(\.\/ | \ .vue)/ g,'')'with'key.replace(/(\.\//\ .vue)/ g,'')'。谢谢。 – kastelli