Preact от Webpack внешности - PullRequest
       41

Preact от Webpack внешности

1 голос
/ 21 февраля 2020

Проблема

  • Мне нужно заменить внешние элементы веб-пакета реаги на преакт , но только на производстве.
  • Мне нужен способ проверить, что мой пакет использует preact, не реагирует.

Например, на моей странице у меня были бы эти сценарии

  • <script src="./externals.js"></script>
  • <script src="./title-component.js"></script>

В моем npm пакете компонентов реагирования

  • Мой npm пакет, написанный в реакции, должен работать с моим внешним преактивным внешним скриптом.
class Title extends React.Component {
  render(){
    return <h1>Test</h1>
  }
}

В конфигурационном файле Webpack Pro

  • В соответствии с предактивной документацией я добавил псевдонимы
resolve: {
    alias: {    
        "react": "preact/compat",
        "react-dom/test-utils": "preact/test-utils",
        "react-dom": "preact/compat"
    };
}

В внешние пакеты Webpack

  • Как рекомендуется при комплектации модулей, моя сборка не содержит React, а перечисляет ее как зависимость от равноправных узлов.
      react: {
            root: ['React'],
            commonjs2: 'react',
            commonjs: 'react',
            amd: 'react'
        },
        'react-dom': {
            root: ['ReactDom'],
            commonjs2: 'react-dom',
            commonjs: 'react-dom',
            amd: 'react-dom'
        },

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 05 апреля 2020

способ проверить, что мой пакет использует preact not response

Посмотрите на скомпилированный и не минимизированный код, чтобы увидеть, как функции компонентов вызываются:

React : _jsxs() или React.createElement()

Preact : Preact.h() (или, может быть, просто h()?)

ref : @ babel / plugin-transform-реагировать-jsx

...