В моем webpack.config.js я импортирую несколько объектов JS для конфигурации из других файлов. Эти объекты составляются с использованием оператора распространения. Бывший. в build.js
const otherObj = { a:[], b: [] }
const conf = {
prop1: [],
...otherObj
}
Затем я хочу использовать эти объекты в webpack.config.js следующим образом:
const { prop1, a, b } = require('./build.js');
module.exports = {
entry: { prop1, a, b },
rules: [
{
test: jsRegex,
exclude: /node_modules/,
use: ["babel-loader"]
},
]
}
Когда я запускаю сценарий сборки, я получаю SyntaxError:
...otherObj,
^^^
SyntaxError: Unexpected token ...
ПРИМЕЧАНИЕ. Здесь следует расширение .babelrc.
{
"presets": [
"@babel/preset-env"
],
"plugins": [
"@babel/syntax-object-rest-spread"
]
}



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


Это зависит от версии node, которую вы используете. Например, при использовании узла v6.15.1 (Boron) будет возвращена та же ошибка, что и у вас, но при работе на v8.14.0 (Carbon) он компилируется нормально.
Убедитесь, что используемая вами версия узла поддерживает необходимые вам функции.
Используемая вами функция свойства распространения объекта была добавлена на v8.6.0 (работающий узел без флагов).
Вы можете перенести конфигурацию вашего веб-пакета, таким образом вы можете использовать свою текущую версию узла и использовать все функции ES6, которые вам могут понравиться.
Здорово! Следите за тем, какие функции поддерживаются, поскольку поддержка node по-прежнему частичная.
Вы должны добавить файл .babelrc, как показано ниже.
Затем установите: npm i babel-plugin-transform-object-rest-spread
{
"presets": ["env", "react"],
"plugins": ["transform-object-rest-spread"]
}
Это сработало для меня, попробуйте!
Спасибо @ a - m! только что обновил Node до 8.12.0, и теперь он работает нормально.