0

ロールアップ + ブーブルを使用しているプリアクト アプリがあります。Reactを使用する別のコンポーネントテキスト マスクを使用する必要があります。ロールアップ ビルド ファイル内にエイリアスを作成しようとしています。クライアント側では問題なく動作しますが、サーバー側でビルドすると失敗します。ロールアップ ビルド構成内のプラグイン セクションは次のとおりです:-

plugins: [
    alias({
      'react': path.resolve('./node_modules/preact-compat/dist/preact-compat.es.js'),
      'react-dom': path.resolve('./node_modules/preact-compat/dist/preact-compat.es.js')
    }),
    nodeResolve({ jsnext: true, browser: true }),
    commonjs({ include: ['node_modules/**'], namedExports: { 'preact-redux': ['connect', 'Provider'] } }),
    replace({ '__CLIENT__': true, 'process.env.NODE_ENV': JSON.stringify('production') }),
    images,
    buble({ jsx: 'h', objectAssign: 'Object.assign' }),
    !isDev && uglify(uglifyConfig) // uglify slows builds
  ]

サーバー側アプリで preact-compat を使用しているときに問題があるという問題に遭遇し、代わりに module-alias を使用することを提案していまし。だから私は自分のノードサーバーファイルに以下のモジュールエイリアスを与えてみました:-

require('module-alias').addAliases({
  'react': 'preact-compat',
  'react-dom': 'preact-compat'
})

それを行った後でも、私はまだ以下のエラーが発生します:-

Error: Cannot find module 'react'
    at Function.Module._resolveFilename (module.js:470:15)
    at Function.Module._load (module.js:418:25)
    at Module.require (module.js:498:17)
    at require (internal/module.js:20:19)
    at r (/my-app/node_modules/react-text-mask/dist/reactTextMask.js:1:145)
    at Object.<anonymous> (/my-app/node_modules/react-text-mask/dist/reactTextMask.js: 1:315)
    at Module._compile (module.js:571:32)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:488:32)
    at tryModuleLoad (module.js:447:12)
4

0 に答える 0