2017-08-07 64 views
0

我有一个应用程序vue.js与vuex实现一些模块,我正在做的是连接对象来获取一些操作,getters,突变。 像这样:具有相同名称的Concat对象数组

const files = require.context('../../renderer/', true, /\?*.actions.js|.\?*.getters.js|.\?*.mutations.js$/); 
const modulesSrc = {}; 

files.keys().forEach((key) => { 
    modulesSrc[key.replace(/(\.*\/|\.js)/g, '')] = files(key).default; 
}); 

export default modulesSrc; 

我所得到的是:

enter image description here


当我尝试改变正则表达式通过获取该文件夹的名称即可正常工作,它会像此:

const files = require.context('../../renderer/', true, /\?*.actions.js|.\?*.getters.js|.\?*.mutations.js$/); 
const modulesSrc = {}; 

files.keys().forEach((key) => { 
    modulesSrc[key.replace(/(\.*\/|\.js|actions?|getters?|mutations)/g, '')] = files(key).default; 
}); 

export default modulesSrc; 

enter image description here

但是在元素内部,它只会获取最后一个文件,而不会与其他文件一起进行连接。


我想这些高亮对象(第一个正则表达式):

enter image description here

这里面输出(最后的正则表达式)的:

enter image description here

我能做些什么?

谢谢!

回答

0

我的建议是简单,不需要正则表达式的额外开销:

const key = '/home/folder/something/mutations.js' 
 
const filename = key.substring(key.lastIndexOf('/') + 1, key.lastIndexOf('.')) 
 
console.log(filename)

+0

我需要的文件夹的名称创建vuex模块,虽然与您的代码如果我有多个突变,我会放弃最后一个突变。 –

相关问题