node: {
fs: "empty"
},
module: {
loaders: [{
test: /\.json$/,
include: path.join(__dirname, 'node_modules', 'pixi.js'),
loader: 'json'
}, {
test: /\.js$/,
exclude: path.join(__dirname, 'node_modules'),
loader: 'babel'
}, {
test: /\.png$|\.jpe?g$|\.gif$|img\/.*\.svg$/,
loader: 'file?name=' + opts.img
}],
noParse: /\.min\.js/
},
ΠΡΠΎ ΡΠΎΡ Uncaught TypeError: fs.readFileSync is not a function
ΠΡΠ»ΠΈ Ρ ΡΠ΄Π°Π»Ρ
node: {
fs: "empty"
}
ΠΡΠΎ ΠΈΠ΄Π΅Ρ Uncaught Error: Cannot find module "fs"
Π² ΠΌΠΎΠ΅ΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΠΊΡΠΈΠΏΡΠ΅ main.js
import PIXI from 'pixi.js'; // use ES6 width Babel from npm pixi.js
Π― Π½Π°ΡΠ΅Π» ΡΡΠΎ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ new PIXI.filters.BlurFilter()
Π½ΠΎ Π΅ΡΠ»ΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΡΠ»ΠΊΡ https://cdnjs.cloudflare.com/ajax/libs/pixi.js/3.0.7/pixi.min.js"
cdn
ΠΡΠΎ Π²ΡΠ΅ Ρ
ΠΎΡΠΎΡΠΎ .
ΠΡΠΆΠ½ΠΎ Π»ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΠΎΠΏΡΠΈΠΈ Π΄Π»Ρ Wepack?
ΠΡΠ±Π»ΠΈΠΊΠ°Ρ β 1854?
ΠΡΠΎ ΠΏΠΎΡ
ΠΎΠΆΠ΅, Π½ΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΠΎΠΌ, Π·Π°ΡΠ΅ΠΌ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ
require('pixi.js')
node: {
fs: "empty"
}
ΠΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ, Π½ΠΎ Π½Π΅ Π½ΡΠ°Π²ΠΈΡΡΡ # 1854, ΠΎΠ½ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Uncaught TypeError: fs.readFileSync is not a function
Π² ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΡΠΎΠ΄Π΅ BlurFilter
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ ,
loaders: [{
test: /\.json$/,
include: path.join(__dirname, 'node_modules', 'pixi.js'),
loader: 'json'
}
ΠΡΠ»ΠΈ Ρ ΡΠ΄Π°Π»Ρ include: path.join(__dirname, 'node_modules', 'pixi.js'),
pixi ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ.
Π½ΠΎ ΡΠ° ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Uncaught TypeError: fs.readFileSync is not a function
Π― Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π·Π½Π°Ρ ΠΎ webpack. ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ°Π΅Ρ readFileSyncs Π² ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ ΡΠ°ΠΉΠ»Π°, ΠΊΠ°ΠΊ ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ browserify.
ΠΠΎΡ ΠΌΠΎΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΡΠ°ΠΉΠ» webpack.config:
var webpack = require("webpack");
var path = require("path");
var config = {
target: "web",
debug: true,
devtool: "source-map",
entry: {
main: "./source/scripts/main"
},
output: {
path: "./build",
filename: "[name].bundle.js",
chunkFilename: "[id].bundle.js"
},
node: { // this is for pixi.js
fs: "empty"
},
resolve: {
modulesDirectories: ['web_modules', 'bower_components', 'node_modules']
},
module: {
loaders: [
{ test: /\.css/, loader: "style-loader!css-loader" },
{ test: /\.less$/, loader: "style-loader!css-loader!less-loader" },
{ test: /\.jsx?$/, exclude: /(node_modules|bower_components)/, loader: 'babel?optional[]=runtime&stage=0'},
{ test: /\.png/, loader: "url-loader?limit=100000&mimetype=image/png" },
{ test: /\.gif/, loader: "url-loader?limit=100000&mimetype=image/gif" },
{ test: /\.jpg/, loader: "file-loader" },
{ test: /\.json/, loader: "json-loader" },
{ test: /\.(png|woff|woff2|eot|ttf|svg)$/, loader: 'url-loader?limit=100000' }
]
},
plugins: [
//new webpack.optimize.UglifyJsPlugin(),
//new webpack.optimize.DedupePlugin(),
new webpack.DefinePlugin({
__DEV__: true
})
]
};
module.exports = config;
ΠΠ°ΠΊΡΡΡΠΈΠ΅, ΠΊΠ°ΠΊ ΡΠ΅ΡΠ΅Π½ΠΎ.
ΠΡΠΎ ΡΠ°ΠΌΡΠΉ ΠΏΡΡΠΌΠΎΠΉ ΠΈ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ webpack Ρ PIXI, ΠΊΠΎΡΠΎΡΡΠΉ Ρ Π½Π°ΡΠ΅Π».
Π― ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΏΠΎΠ»Π΅ main
Π² package.json
Π΄Π»Ρ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π² bin
. ΠΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, ΠΊΠΎΡΠΎΡΡΡ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π»ΡΠ΄Π΅ΠΉ ΡΠΎΠ±ΠΈΡΠ°ΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅. ΠΠ°ΠΆΠ΅ΡΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΡΠ°Π½Π½ΡΠΌ, ΡΡΠΎ ΠΎΠ½ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ Π»ΡΠ±ΡΠΌΠΈ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΡΠ±ΠΎΡΠΊΠΈ ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ.
ΠΠ½ΠΎΠ³ΠΈΠ΅ (Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ?) ΠΡΡΠ³ΠΈΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π² package.json Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ.
ΠΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠ°ΠΊ Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠΌ ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ, ΡΠ°ΠΊ ΠΈ Ρ Π²Π΅Π±-ΠΏΠ°ΠΊΠ΅ΡΠΎΠΌ Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠ΅ΠΉ. Π‘Π°ΠΌΠΈ Webpack ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡΡ Π²Π°ΠΌ _Π½Π΅_ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π΅ Π½Π° ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΡΠ°ΠΉΠ», Π° Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π½Π° ΠΈΡΡΠΎΡΠ½ΠΈΠΊ ΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ΅ΡΠΎΡΡΠ½ΠΎ, Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ ΠΌΡ ΠΏΠΎΡΡΠ°ΡΠ°Π΅ΠΌΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ Β«Π΄ΡΡΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΊ webpackΒ» ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π² Π½Π°Ρ ΠΏΠ°ΠΊΠ΅Ρ json, ΡΡΠΎΠ±Ρ Π²Π°ΠΌ Π½Π΅ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠ»ΠΎΡΡ Π΅Π΅ ΠΏΠΈΡΠ°ΡΡ (ΠΊΠ°ΠΊ ΠΌΡ Π΄Π΅Π»Π°Π΅ΠΌ Π΄Π»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ°). ΠΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΠΎΠ½ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌΠΈ ΡΠ±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ, ΠΏΡΠΎΡΡΠΎ Π½Π΅ΠΏΡΠ°Π²Π΄Π°, webpack - Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΠΎΠ±Ρ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ.
@supermrji Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ Ρ webpack.
ΠΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ Π±ΡΠ» ΡΠ΅ΡΠ΅Π½ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ? ΠΠΎΠ·Π½ΠΈΠΊΠ»Π° ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΡΠ»ΠΎ ΠΈΠ· ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ΅Π°ΠΊΡΠΈΠΈ.
@aasten Π£ ΠΌΠ΅Π½Ρ ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ ΠΌΡΠ»ΠΎΠΌ ΠΈ VUE-CLI ... Π²Ρ Π΅Π΅ ΡΠ΅ΡΠΈΠ»ΠΈ?
@ Crawler158 , ΠΈΠ·Π²ΠΈΠ½ΠΈ.
Π½ΠΈΡΠ΅Π³ΠΎ ΡΠ°ΠΊΠΎΠ³ΠΎ?
ΠΡΠΎΡ ΠΏΠΎΡΠΎΠΊ Π±ΡΠ» Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΠΎΡΠ»Π΅ Π΅Π³ΠΎ Π·Π°ΠΊΡΡΡΠΈΡ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ Π½Π΅ Π±ΡΠ»ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ. ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΎΡΠΊΡΠΎΠΉΡΠ΅ Π½ΠΎΠ²ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π΄Π»Ρ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ.
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ Π±ΡΠ» ΡΠ΅ΡΠ΅Π½ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ? ΠΠΎΠ·Π½ΠΈΠΊΠ»Π° ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΡΠ»ΠΎ ΠΈΠ· ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ΅Π°ΠΊΡΠΈΠΈ.