Webpack.config.js : Конфигурация имеет неизвестное свойство ‘default’

#javascript #webpack #babeljs

#javascript #webpack #babeljs

Вопрос:

Я перенес все из рабочего проекта (ultimate-hot-reloading-example) в свой существующий проект, который использует keystone cms. Я удалил ВСЕ зависимости разработчика в своем проекте и установил все точные зависимости из рабочего проекта в свой (webpack, babel и т.д.).

По какой-то причине web.config.js файл не будет анализировать синтаксис es6

 export default 
  

Которое выдает эту ошибку:

 - configuration has an unknown property 'default'.
  

Если я переключусь на следующее, это сработает:

 const config = ...
module.exports = config;
  

В другом месте моего проекта я использую другой синтаксис es6, и это работает…

Вот зависимости в package.json, который отлично работает с примером проекта с синтаксисом ‘экспортировать по умолчанию’.

 "dependencies": {
"babel-cli": "^6.10.1",
"babel-core": "^6.10.4",
"babel-eslint": "^8.2.3",
"babel-loader": "^7.1.1",
"babel-plugin-react-transform": "^3.0.0",
"babel-plugin-transform-runtime": "^6.9.0",
"babel-preset-env": "^1.7.0",
"babel-preset-react": "^6.11.1",
"babel-register": "^6.9.0",
"babel-runtime": "^6.9.2",
"chokidar": "^2.0.3",
"css-loader": "^0.28.11",
"css-modules-require-hook": "^4.0.1",
"eslint": "^4.19.1",
"eslint-plugin-react": "^7.8.1",
"express": "^4.14.0",
"prop-types": "^15.6.1",
"react": "^16.3.2",
"react-dom": "^16.3.2",
"react-hot-loader": "^4.1.3",
"react-redux": "^5.0.7",
"redux": "^4.0.0",
"style-loader": "^0.21.0",
"webpack": "^4.8.3",
"webpack-dev-middleware": "^3.1.3",
"webpack-hot-middleware": "^2.12.1",
"webpack-node-externals": "^1.7.2"
  

Есть идеи, почему это могло произойти?

Комментарии:

1. webpack запускается на узле, вы не можете использовать синтаксис es6 там. Вы должны либо указать CLI для его анализа, либо использовать CJS

2. @PlayMa256 Я использую babel для ее анализа. Как я уже говорил, это странно, потому что весь остальной синтаксис es6 в моем проекте разбирается правильно. Я думаю, что у меня конфликт версий babel из-за зависимостей babel, установленных keystone cms, и той, что установлена мной…

3. Как вы запускаете cli? передача конфигурации

Ответ №1:

У меня была похожая проблема, которая оказалась моей неправильной миграцией с require(...) на import(...)

Я заменил этот код:

 const common = require("./webpack.common");
module.exports = merge(common, {...})
  

с:

 const common = await import("./webpack.common.js");
export default merge(common, .....)
  

Проблема заключалась в том, что я не использовал default экспорт из webpack.common.js . Исправление заключается:

 const common = await import("./webpack.common.js");
export default merge(common.default, .....)
  

Комментарии:

1. Прошло некоторое время с тех пор, как я работал над этим проектом. Однако я открыл старую копию. На самом деле у меня был другой обходной путь, который я придумал, но я проверил правильность этого ради других. Кажется, это работает. Очень интересно. Спасибо