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๊ฐ ์๋ํ๋๋ก ํ๊ธฐ ์ํ ๊ณตํต ์ง์นจ์ ๋ง๋ จํ ์ ์๋์ง ์์๋ณด๊ธฐ ์ํด ๋ฌธ์ ๋ฅผ ๊ฒ์ํ๊ณ ์์ต๋๋ค.
๋ฌธ์ ๋ฅผ ์ฌํํ๋ ค๋ฉด ๋ค์ ๋ด์ฉ์ผ๋ก ์นํฉ ์ฑ์ ๋ง๋์ญ์์ค.
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 ์ค์น pixi.js ์นํฉ
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๋ ์น ๋ธ๋ผ์ฐ์ ์์ ์ก์ธ์คํ ์ ์์ผ๋ฉฐ glslify ์ค๋ฅ๋ฅผ ์ฌํํฉ๋๋ค. ์ง์ ์์ฑํ๊ณ ๋งค์ฐ ๋น ๋ฅด๊ฒ ํ ์คํธํ์ต๋๋ค. ์ด๊ฒ์ด ์๋ํ์ง ์๋ ๊ฒฝ์ฐ ์๋ ค์ฃผ์๋ฉด ์์ ํ๋๋ก ๋ ธ๋ ฅํ๊ฒ ์ต๋๋ค.
https://github.com/pixijs/pixi.js/issues/2439#issuecomment -243820323๊ณผ ๊ฐ์ด ์ด ๋ฌธ์ ์ ๊ด๋ จํ์ฌ ์ฌ๊ธฐ์ ๋ซํ ๋ช ๊ฐ์ง ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ํ์ง๋ง ํธ์คํธ ํ๋ก์ ํธ์์ ์ด๋ฌํ ์ฌ์ฉ์ ์ ์ ๊ตฌ์ฑ ์์ด PIXI๊ฐ ์ฆ์ ์ฌ์ฉ ๊ฐ๋ฅํ ํธํ์ฑ์ ์ ๊ณตํ ์ ์๋์ง ํ์คํ์ง ์์ต๋๋ค.
์๋ ๊ตฌ์ฑ์ ์ฌ์ฉํ์ฌ webpack์ ์ฌ์ฉํ์ฌ ์ฑ๊ณต์ ์ผ๋ก ์๊ตฌํ ์ ์์ต๋๋ค. webpack 2.x์์๋ง ํ ์คํธํ์ง๋ง 1.x์์๋ ๊ด์ฐฎ์ ๊ฒ์ ๋๋ค.
webpack.config.js:
module: {
loaders: [
/// ...
{ test: /node_modules\/pixi\.js/, loader: 'ify' },
]
},
ํจํค์ง.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 ๋ฐ npm 3.10.6์ ์คํํ๊ณ ์์ต๋๋ค.
๋ด๊ฐ OSX๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค๋ ๊ฒ์ ์์์ต๋๋ค. ์ด ๋ฌธ์ ์ ๊ด๋ จ์ด ์์ด์ผ ํฉ๋๋ค: https://github.com/stackgl/glslify/issues/77
@endel ์์ ์๋ฃจ์ ๋ ์๋ํ์ง ์์ต๋๋ค. @Adam-
@xTiming ์ฌ์ฉ ์ค์ธ ์ด์ ์ฒด์ ๋ฅผ ํ์ธํ ์ ์์ต๋๊น?
@endel Windows 10, Chrome์ ๋ธ๋ผ์ฐ์ ๋ก ์ฌ์ฉํฉ๋๋ค.
@endel @xTiming ์๋ ํ์ธ์, ์ฌ๋ฌ๋ถ. ๋ฐฉ๋ฒ์ ์ฐพ์์ต๋๋ค.
module: {
loaders: [
...
{ test: path.resolve(__dirname, 'node_modules', 'pixi.js'), loader: 'ify' },
...
]
},
์ฐฝ ๊ตฌ๋ถ ๊ธฐํธ๋ ์
๋๋ค.
๊ทธ๊ฒ์ osx์ ๋ฌ๋ฆฌ.
window10์์๋ ๋ณผ ์ ์์ต๋๋ค.
@kimorkim์ด ๊ฒ์ํ ์๋ฃจ์ ์ ์ ์๋ํ์ง๋ง ํ์คํ Typed์ ๋ชจ๋ ์ ๋ ฅ์ด ์๋ง์ ๋๋ค. ๋ฐ์ด๋๋ฆฌ ๋ฒ์ ์ 'pixi.js'์ ๋ณ์นญ์ ์ง์ ํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
ํ์ดํ์ ์ํด ์ธ๋ถ js ํ์ผ์ ์ฐธ์กฐํฉ๋๋ค.
externals: {
// require("jquery") is external and available
// on the global var jQuery
"pixi.js": "PIXI"
},
import * as PIXI from "pixi.js";
์ํ ๊ณต์ ๋ฅผ ๋ง๋ค์์ต๋๋ค.
https://github.com/ossas/sudoku_example2
๋ฌธ์ ๊ฐ ์์ผ๋ฉด ๋งํด์ค
์ฌ๊ธฐ์ ์๋ฃจ์ ์ด ์๋ ๊ฒ ๊ฐ๊ธฐ ๋๋ฌธ์ ์ง๊ธ์ ์ด๊ฒ์ ๋ซ์ต๋๋ค. ๋ํ v5์ ๊ฒฝ์ฐ glslfy์ browserify๋ ์ญ์ ํ ์์ ์ ๋๋ค.
์ด ์ค๋ ๋๋ ๋ซํ ํ ์ต๊ทผ ํ๋์ด ์์๊ธฐ ๋๋ฌธ์ ์๋์ผ๋ก ์ ๊ฒผ์ต๋๋ค. ๊ด๋ จ ๋ฒ๊ทธ์ ๋ํ ์ ๋ฌธ์ ๋ฅผ ์ฌ์ญ์์ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@endel @xTiming ์๋ ํ์ธ์, ์ฌ๋ฌ๋ถ. ๋ฐฉ๋ฒ์ ์ฐพ์์ต๋๋ค.
webpack.config.js
์ฐฝ ๊ตฌ๋ถ ๊ธฐํธ๋ ์ ๋๋ค.
๊ทธ๊ฒ์ osx์ ๋ฌ๋ฆฌ.
window10์์๋ ๋ณผ ์ ์์ต๋๋ค.