在 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)
。
我使用 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)
。