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

Best form to make a map of related strings on JavaScript ES6?

我使用 gulp 来管理我所有的网站资产。我将所有代码迁移到 ES6。您可以在此处查看我的入门 gulp 文件:https://github.com/ramasilveyra/solid-webapp/blob/master/gulpfile.babel.js

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

const paths = {
    src: './src',
    dist: './dist',
    assets: {
        src: paths.src + '/assets',
        dist: paths.dist + '/assets'
    },
    scripts: {
        src: () => paths.assets.src + '/scripts',
        dist: () => paths.assets.dist + '/scripts'
    },
    styles: {
        src: () => paths.assets.src + '/styles',
        dist: () => paths.assets.dist + '/styles'
    },
    media: {
        src: () => paths.assets.src + '/media',
        dist: () => paths.assets.dist + '/media'
    },
    fonts: {
        src: () => paths.assets.src + '/fonts',
        dist: () => paths.assets.dist + '/fonts'
    }
};

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定义的对象可以在进一步的操作中修改。如果您想防止更改其任何字段,请在分配后调用 Object.freeze(paths)