是否可以导入文件夹中的* .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?我没有想到。
答
我使用这个脚本在一个名为“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
你使用的是Webpack吗? –
不,我正在使用vue-cli进行编译。但我想我可以在编译时分配一个配置文件。它有帮助吗? – kastelli
Vue CLI使用webpack。 –