2017-11-04 3 views
0

Webpack設定で資産を取得しようとしています。Webpackには他のライブラリが必要です

大規模な.jsファイルからすべてのJSを分割して、application.jsメインファイルrequireをすべて別々のファイルに分割しました。

これらのファイルのいずれか:gallery.jsにはPhotoSwipeライブラリが必要です。

require('photoswipe/dist/photoswipe.min'); 
require('photoswipe/dist/photoswipe-ui-default.min'); 

しかし、ページを実行するときに、私が取得コンソールで:

gallery.js?a942:77 Uncaught ReferenceError: PhotoSwipe is not defined 
    at openPhotoSwipe (gallery.js?a942:77) 
    at HTMLAnchorElement.eval (gallery.js?a942:89) 
    at HTMLAnchorElement.dispatch (vendor.js:5530) 
    at HTMLAnchorElement.elemData.handle (vendor.js:5338) 

誰でも方向に私を指すことができ、それは私のnode_modulesディレクトリに、私が持っているgallery.jsの先頭にIがインストールされています私は間違っているので、PhotoSwipeの不確定性を修正できますか?

おかげで、 ニール

答えて

0

あなたはこの仕事を得るために2つのことを行うことができます。

  1. 変数にrequire Dライブラリを割り当てなど必要なところはどこでもあなたが好きなためPhotoSwipe変数を移入するために使用ProvidePlugin

    var PhotoSwipe = require('photoswipe'); 
    var PhotoSwipeUIDefault = require('photoswipe/dist/photoswipe-ui-default'); 
    
  2. をことを使用し、

    plugins: [ 
        new webpack.ProvidePlugin({ 
         PhotoSwipe: 'photoswipe', 
         PhotoSwipeUI_Default: 'photoswipe/src/js/ui/photoswipe-ui-default.js' 
        }) 
    ] 
    
+0

ファンタスティック!とても有難い。興味のない、これは好ましいアプローチですか? – rctneil

+0

これらの2つのライブラリを複数の場所で使用している場合は、アプローチ2を使用してください。それ以外の場合は、アプローチ1を使用してください。 – Thaadikkaaran

関連する問題