我在vue.js中有一个带有vuex的应用程序,它实现了一些模块,我正在做的是连接对象来获取一些动作,getter,突变。 像这样:
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;
我得到的是:
当我尝试通过仅获取文件夹的名称来更改正则表达式时,它是这样的:
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;
但是在元素内部,它只获取最后一个文件,并且不与其他文件连接。
我想获得这些高亮对象(第一个正则表达式):
此输出内部(最后一个正则表达式):
我该怎么办?
谢谢!
答案 0 :(得分:0)
我的建议更简单,并且不需要额外的正则表达式开销:
const key = '/home/folder/something/mutations.js'
const filename = key.substring(key.lastIndexOf('/') + 1, key.lastIndexOf('.'))
console.log(filename)