Webpackにバンドルした後にPixiアプリを実行すると、次のエラーが発生します。
browser.js:2 Uncaught Error: It appears that you're using glslify in browserify without its transform applied. Make sure that you've set up glslify as a source transform
いくつかの調査は、これがWebpackユーザーに共通の問題であることを示唆しています。 https://gist.github.com/mjackson/ecd3914ebee934f4daf4#gistcomment -1842689
この解決策は一部の人にとってはうまくいくようですが、私はまだうまくいきません。 Pixiをwebpackアプリで動作させるための一般的なガイドラインを考え出すことができるかどうかを確認するために問題を投稿しています。
問題を再現するには、次の内容のWebpackアプリを作成するだけです。
var PIXI = require('pixi.js');
var renderer = new PIXI.WebGLRenderer(256, 256);
こんにちは@ Adam-Meisen! この問題が数回発生しましたが、最近、自分で直接体験しました。 それを修正する時間だと思います💃
glsifyを生のテキストに置き換えることであなたが思うトリックはできますか? まだglslifyに固有のものは使用していません。
考えは大歓迎です! 👍
このライブラリを発見したばかりなので、gslifyが内部でどのように使用されているのか本当にわかりませんが、検索すると、多くの潜在的な原因がある非常にあいまいなエラーメッセージのようです。 あなたが提案したことはおそらくうまくいくでしょう。 理想的にはこれの原因を突き止めたいのですが、それを完全に回避することはおそらく悪い考えではありません。
ただし、ify-loader、browserify-versionify、glslifyを使用しても、まだ機能させることができていないため、ライブラリのcdnビルドを使用しています。
+1して修正します。今のところ、ビルド前のバージョンを使用しています
`pixi.js / bin /pixi.js 'からPIXIをインポート
私はWebpackにあまり詳しくありません。 誰かがこの問題を再現する簡単なテストプロジェクト/リポジトリを作成して、デバッグに使用できるようにすることはできますか?
これは次の方法で再現できます。
npm install pixi.js webpack
var path = require('path');
var webpack = require('webpack');
module.exports = {
entry: path.resolve(__dirname, 'index.js'),
output: {
path: path.resolve(__dirname, 'scripts/'),
filename: 'bundle.js'
},
node: {
fs: 'empty'
}
};
var PIXI = require('pixi.js');
console.log(PIXI);
var renderer = new PIXI.WebGLRenderer(512, 512);
プロジェクトのルートフォルダから:
webpack --config webpack.config.js
結果の(projectroot)/scripts/bundle.jsはWebブラウザーでアクセスでき、glslifyエラーを再現します。 自分ですばやく作成してテストしました。これでうまくいかない場合はお知らせください。修正を試みます。
https://github.com/pixijs/pixi.js/issues/2439#issuecomment -243820323など、この問題に関してここでクローズされたいくつかの問題があり
以下の構成を使用して、webpackを使用して正常に要求できます。 webpack 2.xでのみテストしましたが、1.xでも問題ないはずです。
webpack.config.js:
module: {
loaders: [
/// ...
{ test: /node_modules\/pixi\.js/, loader: 'ify' },
]
},
package.json:
"devDependencies": {
"browserify-versionify": "^1.0.6",
"glslify": "^5.1.0",
"ify-loader": "^1.0.3",
"pixi.js": "^4.0.0"
}
残念ながら、それでも、それでも私にはうまくいきません。
@ Adam-Meisenそれは奇妙です。 webpack.config.js
とpackage.json
共有して、見てもらえますか? 乾杯!
+1私もこの問題を抱えています。 今のところ、 @ stephanedemotteの一時的な解決策(上記)に従い
ちょっと、お待たせして申し訳ありませんが、問題を特定しやすくするために、プロジェクトを合理的な最小値に減らしました。
package.json
でわかるように、問題を修正するために必要であると人々が言っているすべてのモジュールを含めました。
"browserify-versionify": "^1.0.6",
"glslify": "^5.1.0",
"ify-loader": "^1.0.3",
https://gist.github.com/Adam-Meisen/db219b1815633400844b350788a11a6e
ファイルをディレクトリに保存してwebpack
を実行し、ブラウザでindex.html
を開くか、 webpack-dev-server
ます。
@ Adam-Meisenねえ、私には似合います。 その構成にエラーはありますか? ここで機能しました:
OSX 10.10.1で実行している場合、私のノードとNPMのバージョンは次のとおりです。
$ node --version
v6.3.0
$ npm --version
3.10.3
私はWindowsを使用しており、ノード6.3.1とnpm3.10.6を実行しています。
私がOSXを使用していることを言及するのを忘れました。 この問題と関係があるはずです: https :
@endel上記の解決策も私には機能しません-@ Adam-
@xTiming使用しているオペレーティングシステムを確認できますか?
@endel Windows 10、ブラウザとしてChromeを使用。
@endel @xTimingこんにちは、みんな。 私は方法を発見しました。
module: {
loaders: [
...
{ test: path.resolve(__dirname, 'node_modules', 'pixi.js'), loader: 'ify' },
...
]
},
ウィンドウセパレータはです。
そのosxとは異なり。
それはwindow10にも見られます。
@kimorkimが投稿したソリューションは
入力については、外部のjsファイルを参照します。
externals: {
// require("jquery") is external and available
// on the global var jQuery
"pixi.js": "PIXI"
},
import * as PIXI from "pixi.js";
ここに解決策があるように思われるので、今のところこれを閉じます。 さらに、v5では、glslfyを削除し、おそらくbrowserifyも使用します。
このスレッドは、閉じられた後に最近のアクティビティがないため、自動的にロックされています。 関連するバグについては、新しい問題を開いてください。
最も参考になるコメント
@endel @xTimingこんにちは、みんな。 私は方法を発見しました。
webpack.config.js
ウィンドウセパレータはです。
そのosxとは異なり。
それはwindow10にも見られます。