it-swarm.com.ru

Не удалось минимизировать код из этого файла

Я создаю библиотеку JavaScript, которую хочу добавить в npm. В настоящее время я использую эту библиотеку в другом проекте, и я добавил ее в качестве зависимости, используя ее репозиторий GitHub:

"dependencies": {
  // ... others
  "react-web-component": "LukasBombach/react-web-component",
}

Я также использую Webpack с UglifyJsPlugin. Теперь, когда я хочу построить свой проект, я получаю сообщение об ошибке:

Не удалось скомпилировать.

Не удалось минимизировать код из этого файла:

./packages/react-scripts/node_modules/react-web-component/src/index.js строка 18: 0

Подробнее читайте здесь: https://github.com/facebookincubator/create-react-app/blob/master/packages/react-scripts/template/README.md#npm-run-build-fails-to- преуменьшать

ошибка команды с кодом выхода 1.

Это проблема моей библиотеки. Когда я удаляю его из моего deps (и из моего кода), компиляция работает.

Я не могу понять, в чем проблема, мой код кажется довольно простым:

const ReactDOM = require('react-dom');
const retargetEvents = require('./retargetEvents');
const getStyleElementsFromReactWebComponentStyleLoader = require('./getStyleElementsFromReactWebComponentStyleLoader');

module.exports = {
  create: function(app, tagName, options) {
    const proto = Object.create(HTMLElement.prototype, {
      attachedCallback: {
        value: function() {
          const shadowRoot = this.createShadowRoot();
          const mountPoint = document.createElement('div');
          getStyleElementsFromReactWebComponentStyleLoader().forEach(style =>
            shadowRoot.appendChild(style)
          );
          shadowRoot.appendChild(mountPoint);
          ReactDOM.render(app, mountPoint);
          retargetEvents(shadowRoot);
        },
      },
    });
    document.registerElement(tagName, { prototype: proto });
  },
};

Внутри retargetEvents и getStyleElementsFromReactWebComponentStyleLoader необходимы простые команды module.export. Вы можете увидеть их исходный код здесь и здесь .

Я уже пытался опубликовать свою библиотеку с помощью команд экспорта/импорта ES6.

Полный исходный код моей библиотеки (это только эти 3 файла) можно найти по адресу https://github.com/LukasBombach/react-web-component

4
Lukas

Я нашел решение!

В моем коде были некоторые функции ES6, а именно foreach оператор ~ и синтаксис сокращенной функции. Гадкий не принял это. Мне нужно было заменить это кодом ES5, и теперь он работает хорошо.

4
Lukas

Для тех, кто сталкивается с проблемой. Сначала проверьте ваш package.json, используете ли вы React-скрипт 1.x. Если это так, попробуйте обновить до 2.x.x.

Из официальных документов по устранению неполадок npm run build не удается минимизировать

npm run build не удается минимизировать До [email protected], эта проблема был вызван третьей стороной node_modules с использованием современного JavaScript функции, потому что минификатор не может обработать их во время сборки . Это было решено путем компиляции стандартных современных функций JavaScript внутри node_modules в [email protected] и выше.

Если вы видите эту ошибку, вы, вероятно, используете старую версию react-scripts. Вы можете исправить это, избегая зависимости использует современный синтаксис или путем обновления до [email protected]>=2.0.0 и следуя инструкциям по миграции в журнале изменений.

Обновление.

npm install --save --save-exact [email protected]

или же

yarn add --exact [email protected]
0
Ken Ratanachai S.