2017-01-30 8 views
0

古いアプリケーションを書き換え、ゆっくりとwebpackを使用して断片をラップします。古いコードベースとの互換性を維持するために、globalにあるいくつかの機能があり、しばらくの間アクセス可能なままにする必要があります。私はoutputオブジェクトlibraryのプロパティを設定しようとしましたが、これは動作します。しかし、私は3つの空のオブジェクト(各エントリポイントのための)を含む私のライブラリで終わる。私はexpose-loaderのプラグインと同じ結果を調べました。私はそれが自分の理解に欠けていると確信していますが、それでも学習曲線を描こうとしています。問題の記事SO多くの影響(https://stackoverflow.com/a/39166592/1893557)画像でentryPoint関数をグローバルに公開する

entry: { 
     app: './app.js', 
     mystc: './mystc/index.js', 
     vendor: [ 
      // 'jquery', 
      'angular', 
      'angular-aria', 
      'angular-animate', 
      'angular-messages', 
      'angular-sanitize', 
      'angular-material', 
      'angular-material-data-table', 
      'moment', 
      'bootstrap', 
      'pikaday', 
      'timepicker', 
      'ng-infinite-scroll', 
      'atrament', 
      'node-waves', 
      'cache-autocomplete' 
     ] 
    }, 
    output: { 
     // path: __dirname + '/js', 
     path: __dirname + '/js-webpack', 
     filename: '[name].bundle.js', 
     libraryTarget: 'var', 
     library: ['GlobalAccess', "[name]"] 
    }, 

enter image description here

を撮影^^^あなたは、この設定のための出力に含まが表示されます。何mystcエントリポイントの内部にあることである:

require("./loadtesting"); 
require("./utilities"); 
require("./webnotifications"); 
require("./ajaxclient"); 
require("./Number"); 

これらのファイルは、それぞれのファイルにエクスポートされた多くの機能を指します。だから、これらの関数は、アプリケーションの多くの部分で使用され、名前を変更したり、今のところコードベースで呼び出されているすべての関数を修正する必要はありません。このようなエントリオブジェクトの配列で

答えて

1

インサイド./mystc/index.jsだけでなくrequireからエクスポート機能にアクセスすることができます - それもエクスポートする必要があります

exports.loadtesting = require("./loadtesting"); 
exports.utilities = require("./utilities"); 
exports.webnotifications = require("./webnotifications"); 
exports.ajaxclient = require("./ajaxclient"); 
exports.Number = require("./Number"); 
1

明示的に宣言したファイル(モジュール):

testGlobal: ['./home/ajaxclient', './home/loadcore'], 
は、今私はoutput.library

+0

もう少し掘り下げた後、実際には、エクスポートされた関数をarraの最後のモジュールに公開していますyをエントリポイントに追加します。 –

関連する問題