我正在使用webpack,最后我看不到这个程序包的机会,因为看来Object.assign可以胜任,但是关于这个程序包的内容可能有些矛盾吗?
谢谢
答案 0 :(得分:10)
“ webpack-merge” npm包和Object.assign()(或对象传播)之间的区别在于它们如何处理具有相同名称的属性:
const webpackMerge = require("webpack-merge");
const object1 = {
'x': [{'a': 'a' }, { 'b': 'b' }]
}
const object2 = {
'x': [{'c': 'c' }, { 'd': 'd' }]
}
console.log('result webpackMerge: ',
webpackMerge(object1, object2)
)
console.log('result Object.assign: ',
Object.assign({}, object1, object2)
)
console.log('result Object.spread: ',
{...object1, ...object2}
)
以上内容将为您提供:
result webpackMerge: { x: [ { a: 'a' }, { b: 'b' }, { c: 'c' }, { d: 'd' } ] }
result Object.assign: { x: [ { c: 'c' }, { d: 'd' } ] }
result Object spread: { x: [ { c: 'c' }, { d: 'd' } ] }
如上所示,Object.assign()(或Object Spread)用后一个属性覆盖了前一个属性的值,而webpack-merge连接了数组的元素。