Я получаю неожиданную ошибку токена для оператора распространения, как я могу создать пакет, не удаляя код?
Вот мой файл конфигурации webpack
Unexpected token (85:32)
83 | console.info(
84 | 'return value 1 ' +
> 85 | JSON.stringify({ value: { ...this.value(), ...newState } })
| ^
86 | )
87 | return {
88 | value: {
var path = require ('путь')
module.exports = {
entry: path.resolve(__dirname, 'partner/index.js'),
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'bundle.js'
},
module: {
rules: [
{
test: /\.js$/, // Check for all js files
loader: 'babel-loader',
query: {
presets: ['babel-preset-es2015'].map(require.resolve)
},
exclude: /node_modules/(?!other-module)/
}
]
},
stats: {
colors: true
},
devtool: 'source-map',
resolve: { symlinks: false }
}
Однако этот веб-пакет работает, но мне нужно использовать предыдущий
module.exports = {
entry: {
partner: '../workout-example/partner/index.js',
test: '../workout-example/test/example.spec.js'
},
target: 'web',
mode: 'development',
node: {
fs: 'empty'
},
output: {
filename: '[name]_bundle.js'
}
}



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вам следует изменить оператор распространения на Object.assign ()
Пример из Mozilla
const object1 = {
a: 1,
b: 2,
c: 3
};
const object2 = Object.assign({}, object1);
console.info(object2.c);
// expected output: 3
Ваша версия JS, вероятно, не поддерживает последний синтаксис es6
Пример из вашего кода
JSON.stringify({ value: { Object.assign({}, this.value(), newState) } })
Взгляните на ответ от @str
Я изменил пресеты на babel-preset-es2017, но получаю сообщение об ошибке, что не могу найти модуль babel-preset-es2017
В отправляемой вами ссылке говорится, что babel-preset-es2017 устарел, поэтому я вижу, что babel советует использовать env вместо годового решения. когда я использую пресеты: ['@ babel / preset-env'] в конфигурации webpack вместо babel-preset-es2015, я получаю -> Не могу найти модуль '@ babel / preset-env'
Вы запускали: npm install babel-preset-env --save
мы используем пряжу и monorepo и устанавливаем через lerna. Итак, я попробовал lerna add --dev babel-preset-env и lerna add --dev babel-preset-es2017, но получил это для них обоих -> bash: ./node_modules/.bin/lerna: такого файла или каталога нет
npm install @ babel / preset-env и укажите "presets": ["@ babel / preset-env"] в вашей конфигурации.
Я установил с помощью npm install babel-preset-env --save в подпакете (мы используем monorepo) и записал пресеты: ['babel-preset-env']. Map (require.resolve) в конфигурационный файл webpack, но все равно получаю ошибку для распространения оператор
так в чем разница между @ babel / preset-env и babel-preset-env? Я сделал это, установил @ babel / preset-env и написал @ babel / preset-env в конфигурации webpack, но на этот раз получил другую ошибку -> Ошибка сборки модуля: Ошибка: не удается найти модуль '@ babel / core'
используйте @ babel / preset-env в качестве имени пакета вместо babel-preset-env
Это стабильная версия
Да, я пробовал использовать @ babel / preset-env в конфигурации webpack, как писал, но получил ошибку модуля, а не foud. Это дает ту же ошибку даже после того, как я попробовал → npm install --save-dev babel-core
Вот документ о том, как перейти с es2015 на babel-env: babeljs.io/env
Спасибо, но я уже прочитал эту страницу сегодня, и на этой странице нет ничего особенного, мои файлы babelrc уже являются env, и я не нацелен на определенные версии браузера.
Свойства объекта Rest / Spread еще не является функцией ECMAScript (но будет очень скоро).
Для его использования необходимо добавить соответствующий Плагин Babel.
Я думаю, что это должен быть принятый ответ, поскольку мой ответ требует, чтобы вы изменили любой код
Что значит не поддерживается? На самом деле он работает с другой конфигурацией (я добавил в исходный вопрос)