2017-02-13 202 views
1

我討厭在代碼中重複一些事情。現在我在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。 –

回答

3

我使用這個腳本在一個名爲「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

相關問題