Pixi.js: webpackとの互換性

作成日 2015年05月28日  ·  16コメント  ·  ソース: pixijs/pixi.js

var PIXI = require('pixi.js');

最初の試みで、たくさんのwebpackエラーが発生しました。

ERROR in ./~/pixi.js/src/filters/ascii/AsciiFilter.js
Module not found: Error: Cannot resolve module 'fs' in /Users/michaeldelaney/Workspace/web_dev/gulp-starter/node_modules/pixi.js/src/filters/ascii
 @ ./~/pixi.js/src/filters/ascii/AsciiFilter.js 3:9-22

ERROR in ./~/pixi.js/src/filters/blur/BlurXFilter.js
Module not found: Error: Cannot resolve module 'fs' in /Users/michaeldelaney/Workspace/web_dev/gulp-starter/node_modules/pixi.js/src/filters/blur
 @ ./~/pixi.js/src/filters/blur/BlurXFilter.js 3:9-22

ERROR in ./~/pixi.js/src/filters/blur/BlurYFilter.js
Module not found: Error: Cannot resolve module 'fs' in /Users/michaeldelaney/Workspace/web_dev/gulp-starter/node_modules/pixi.js/src/filters/blur
 @ ./~/pixi.js/src/filters/blur/BlurYFilter.js 3:9-22

etc...

そこで、webpackの設定でnode: { fs: "empty" }を設定すると、上記のエラーが解消されました。

しかし、このエラー:

ERROR in ./~/pixi.js/package.json
Module parse failed: /Users/michaeldelaney/Workspace/web_dev/gulp-starter/node_modules/pixi.js/package.json Line 2: Unexpected token :
You may need an appropriate loader to handle this file type.
| {
|   "name": "pixi.js",
|   "version": "3.0.6",
|   "description": "Pixi.js is a fast lightweight 2D library that works across all devices.",
 @ ./~/pixi.js/src/core/const.js 14:13-42

そこで、 json-loaderをwebpackの設定に追加しました。

module: {
  loaders: [{
    test: /\.json$/,
    loader: 'json-loader'
  }]
}

成功。 しかし、これが箱から出してうまくいったらいいのにと思います。

🤔 Question

最も参考になるコメント

Webpackには、解析せずに「事前にパックされた」ライブラリ(pixi.jsなど)をロードするオプションがあります。webpackconfigのモジュールセクションにnoParseを追加するだけです。

module: { noParse: [ /.*(pixi\.js).*/ ], }

このスニペットは、内部要件の問題を解決する必要があります。

全てのコメント16件

browserify brfs変換を使用します。

https://github.com/GoodBoyDigital/pixi.js/blob/master/package.json#L57 -L61

そのwebpackを互換性のあるものにする方法がわかりませんが、browserifyトランスフォームを実行しているwebpackに関する記事はありますか?

@drkibitz @englercjヒントをありがとう、transform-loader + json-loaderを使用してPixi + Webpackを使い始めることができました。

@fusepilotこれが私が使用しているwebpack設定です。

Babelを使用しているときに@mkingの設定を機能させることができませんでした。 brfsをpostLoadersに移動する必要がありましたが、現在は機能しています: https ://gist.github.com/oal/898df82fa64e54dd16d0

これは答えられたようですので、締めくくります。

pixi.js/src/core/const.js../../package.jsonを要求しようとし、エラーCannot find module "../../package.json"発生するという問題を解決できません両方の方法を試しました。 これは、ホットモジュールのリロードを使用している場合にのみ発生しますが、本番ビルドでは正常に機能します。

結局、 import PIXI from 'pixi.js/bin/pixi.js'ようなビルドバージョンのpixi.jsを使用することになりました。 そして今、警告が表示されますが、ホットリロードは機能します:

[HMR] ./~/pixi.js/bin/pixi.js Critical dependencies: 34:477-484 This seems to be a pre-built javascript file. Though this is possible, it's not recommended. Try to require the original source to get better results. @ ./~/pixi.js/bin/pixi.js 34:477-484

.jsonをサポートするためにwebpack用のプラグインが必要になるかもしれません。 Node / browserifyはそれをネイティブにサポートします。

@englercj json-loaderが構成されている場合にサポートされます。 私はwebpackの専門家ではありませんが、これはwebpack-hot-middlewareが原因の問題である可能性があります。バンドルが機能するため、エラーは

うーん、変だ。 うん、すみません、私もよく知らないです:/

Webpackには、解析せずに「事前にパックされた」ライブラリ(pixi.jsなど)をロードするオプションがあります。webpackconfigのモジュールセクションにnoParseを追加するだけです。

module: { noParse: [ /.*(pixi\.js).*/ ], }

このスニペットは、内部要件の問題を解決する必要があります。

これは、私が見つけたPIXIを使用してwebpackを構成する最も直接的で単純な例です。

https://gist.github.com/mjackson/ecd3914ebee934f4daf4

この要点は、最も単純なwebpack + pixi.js構成です:

https://gist.github.com/mjackson/ecd3914ebee934f4daf4

(素晴らしいコメント付き)

上にリンクされている要点は、pixijs / pixiに関連するバグに悩まされています。 js @ 5a53e38 - __VERSION__として報告されます

webpack.config.jsは、次のローダーを含める必要があります。

{
  include: path.resolve(__dirname, 'node_modules/pixi.js'),
  loader: 'transform/cacheable?browserify-versionify'
}

@mjacksonがここで言及しているのは、要点のコメントは明らかに通知を送信しないためです😞

ちょうどこの問題に遭遇しました。 解決策をどうもありがとう!

これがWebpack / TypescriptとPixiJSの動作構成です:-)。 https://gist.github.com/Nek-/b9775f7a88eb896db8afc37a89db3771

このスレッドは、閉じられた後に最近のアクティビティがないため、自動的にロックされています。 関連するバグについては、新しい問題を開いてください。

このページは役に立ちましたか?
0 / 5 - 0 評価