#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. Прошло некоторое время с тех пор, как я работал над этим проектом. Однако я открыл старую копию. На самом деле у меня был другой обходной путь, который я придумал, но я проверил правильность этого ради других. Кажется, это работает. Очень интересно. Спасибо