在JavaScript ES6上制作相关字符串映射的最佳形式?

在JavaScript ES6上制作相关字符串映射的最佳形式?,javascript,gulp,ecmascript-6,object-literal,Javascript,Gulp,Ecmascript 6,Object Literal,我使用gulp管理我所有的网站资产。我将所有代码迁移到ES6。你可以在这里看到我的开胃酒: 我怀疑这是否是处理所有不同资产路径的最佳方法。有没有更好的形式(没有函数更实用)?谢谢 const路径={ src:'./src',, 地区:'./地区', 资产:{ src:path.src+'/assets', dist:path.dist+'/assets' }, 脚本:{ src:()=>path.assets.src+'/scripts', dist:()=>path.assets.dist+

我使用gulp管理我所有的网站资产。我将所有代码迁移到ES6。你可以在这里看到我的开胃酒:

我怀疑这是否是处理所有不同资产路径的最佳方法。有没有更好的形式(没有函数更实用)?谢谢

const路径={
src:'./src',,
地区:'./地区',
资产:{
src:path.src+'/assets',
dist:path.dist+'/assets'
},
脚本:{
src:()=>path.assets.src+'/scripts',
dist:()=>path.assets.dist+'/scripts'
},
风格:{
src:()=>path.assets.src+'/styles',
dist:()=>path.assets.dist+'/styles'
},
媒体:{
src:()=>path.assets.src+'/media',
dist:()=>path.assets.dist+'/media'
},
字体:{
src:()=>path.assets.src+'/font',
dist:()=>path.assets.dist+'/font'
}

};ES6不会为您带来新的东西。但您可以将填充对象拆分为几个语句:

const paths = {
   src: './src',
   dist: './dist'
};
paths.assets = {
    src: paths.src + '/assets',
    dist: paths.dist + '/assets'
};
paths.scripts = {
    src: () => paths.assets.src + '/scripts',
    dist: () => paths.assets.dist + '/scripts'
};
// ... and so on

请注意,通过
const
定义的对象可以在进一步的操作中修改。如果要防止任何its字段的更改,请在分配后调用
对象.freeze(paths)

paths.assets.src==“undefined/assets”
?看起来这里适合使用循环。