0

フォルダーからプロジェクトの依存関係をインポートするために、コードに次のES6インポートがあります。node_modules

import React from 'react';

この webpack 構成を使用すると、すべてが期待どおりに機能します。

{
  module: {
    loaders: [
      {
        loader: 'babel',
        test: /(\.js|\.jsx)/,
        exclude: /(node_modules|bower_components)/
      }
    ]
  }
}

自動的に追加された反応依存関係を含むバンドルされたファイルになります。

modules: 'system'しかし、インポートを次のように出力するために使用するようにbabelを構成するとSystem.register:

{
  module: {
    loaders: [
      {
        loader: 'babel',
        test: /(\.js|\.jsx)/,
        exclude: /(node_modules|bower_components)/,
        query: {
          modules: 'system',
          moduleIds: true,
          keepModuleIdExtensions: true
        }
      }
    ]
  }
}

次に、バンドルされたファイルに反応依存関係が含まれなくなり、systemjswebpack を通過した後にライブラリをコンパイル済みファイルに追加する必要があります。

を使用してこの構成をどのように処理すると考えられますwebpackか? にコンパイルするときに既に行っているようにwebpack、react 依存関係をバンドルできないのはなぜですか?systemcommonjs

PS:私は、またはwebpackではなく、を使用してこれを達成することを具体的に求めていますsystemjs-builderjspm

4

1 に答える 1

0

それはWebpackの仕組みではありません。Webpack は AMD および CommonJS モジュールを処理できますが、SystemJS モジュールは処理できません。

Webpack がモジュール システムをサポートするには、JS を見て、どのファイルが何に依存しているかを静的に判断し、ファイルが機能して他のモジュールと互換性があるように変更できる必要があります。SystemJS が何であるかがわからないため、CommonJS モジュールを参照していない JS ファイルしか表示されないため、require().

于 2015-09-30T21:19:25.777 に答える