這篇文章主要介紹怎么使用webpack搭建pixi.js開發環境,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

在文昌等地區,都構建了全面的區域性戰略布局,加強發展的系統性、市場前瞻性、產品創新能力,以專注、極致的服務理念,為客戶提供成都做網站、網站建設 網站設計制作按需定制網站,公司網站建設,企業網站建設,品牌網站制作,成都全網營銷推廣,外貿營銷網站建設,文昌網站建設費用合理。
前提
需要會簡單使用nodejs,了解package.json,會簡單使用npm init,npm install,npm run命令。
需要稍微了解webpack和gulp。
需要有google chrome瀏覽器。
最好會一點git,demo項目pixi-webpack-demo托管在github上,通過切換不同分支演示一步一步項目的構建過程,現在把項目clone下來吧。
為了更容易理解,這里先貼出來項目最終的目錄結構
. ├── dist │ ├── index.html │ ├── game.min.js │ └── assets │ └── bunny.png ├── src │ ├── index.html │ ├── assets │ │ └── bunny.png │ └── js │ ├── main.js │ └── scene.js ├── gulpfile.js ├── package.json ├── webpack.common.js ├── webpack.dev.js └── webpack.prod.js
構建環境
nodejs:需要node環境,前端項目現在基本都是基于node項目創建的,node的包管理系統和工具鏈很方便。
git:非必須,看demo時候切分支用。
初始化項目
運行git checkout init切換到init分支即可看到這一步的示例。
創建目錄pixi-webpack-demo,在pixi-webpack-demo根目錄下運行npm init命令初始化項目,按照提示輸入項目信息,完成后生成一個package.json文件。
運行npm install --save pixi.js安裝依賴。
完成上面兩步,package.json文件如下所示:
{
 "name": "pixi-webpack-demo",
 "version": "1.0.0",
 "description": "make pixi.js game with webpack and gulp",
 "main": "src/js/main.js",
 "keywords": ["pixi.js","webpack"],
 "author": "yulijun",
 "license": "MIT",
 "dependencies": {
  "pixi.js": "^5.2.1"
 }
}創建文件src/index.html。
<html> <head> <title>pixi-webpack-demo</title> </head> <body> <canvas id="scene"></canvas> <!-- 注意這里的game.min.js文件,稍微在“引入webpack”步驟詳細解釋它--> <script type="text/javascript" src="game.min.js" charset="utf-8"></script> </body> </html>
創建文件src/js/main.js,這個文件是游戲入口文件。
import * as PIXI from 'pixi.js'
const app = new PIXI.Application({
 width: 720,
 height: 1280,
 backgroundColor: 0x1099bb,
 view: document.querySelector('#scene')
});
const texture = PIXI.Texture.from('assets/bunny.png');
const bunny = new PIXI.Sprite(texture);
bunny.anchor.set(0.5);
bunny.x = 160
bunny.y = 160
app.stage.addChild(bunny);
app.ticker.add((delta) => {
 bunny.rotation -= 0.01 * delta;
});引入webpack
運行git checkout webpack切換到webpack分支即可看到這一步的示例。
運行npm install --save-dev webpack webpack-dev-server webpack-cli webpack-merge安裝依賴。
創建webpack.common.js文件,這個是webpack公共配置。
const path = require('path')
module.exports = {
 //游戲入口文件
 entry: ['./src/js/main.js'],
 output: {
  //js文件最終發布到哪個路徑
  path: path.resolve(__dirname, 'dist'),
  
  //注意這個名字和剛才html里面的名字必須一致。
  //開發階段webpack會自動處理這個文件讓html引用到,雖然磁盤上不會有這個文件。
  //但是最終發布項目的時候會生成這個文件。
  filename: 'game.min.js',
 },
 target: 'web'
}創建webpack.dev.js文件,這個配置文件用于開發調試階段。
const path = require('path')
const merge = require('webpack-merge')
const common = require('./webpack.common.js')
module.exports = merge(common, {
 devtool: 'inline-source-map',
 mode: 'none',
 devServer: {
  //調試時候源代碼的位置
  contentBase: path.join(__dirname, 'src'),
  port: 8080,
  host: '0.0.0.0',
  hot: true
 }
})創建webpack.prod.js文件,這個配置文件用于發布項目(稍后在引入babel和發布項目步驟再詳細介紹,這里暫時先貼出來),這里配置了babel轉碼、tree shake和生成source map等。
const merge = require('webpack-merge')
const common = require('./webpack.common.js')
module.exports = merge(common, {
 'mode':'production',
 devtool: 'source-map',
 module: {
  rules: [{
   test: /\.js$/,
   exclude: /node_modules/,
   use: {
    loader: 'babel-loader',
    options: {
     presets: [
      ['@babel/preset-env', {
       'corejs': '3',
       'useBuiltIns': 'usage'
      }]
     ],
     plugins: ['@babel/plugin-transform-runtime']
    }
   }
  }]
 }
})在package.json中的script配置節增加啟動命令。
{
 "name": "pixi-webpack-demo",
 "version": "1.0.0",
 "description": "make pixi.js game with webpack and gulp",
 "main": "src/js/main.js",
 "keywords": ["pixi.js","webpack"],
 "author": "yulijun",
 "license": "MIT",
 "scripts": {
  "start": "webpack-dev-server --open 'google chrome' --config webpack.dev.js"
 },
 "devDependencies": {
  "webpack": "^4.41.5",
  "webpack-cli": "^3.3.10",
  "webpack-dev-server": "^3.10.3",
  "webpack-merge": "^4.2.2"
 },
 "dependencies": {
  "pixi.js": "^5.2.1"
 }
}現已成功引入了webpack,運行npm start啟動項目,會自動打開chrome瀏覽器,我們看到游戲已經跑起來了!嘗試修改src/js/main.js文件,保存下,頁面會自動刷新,我們的修改也已經能反映到頁面上了!
構建項目
運行git checkout master切換到master分支即可看到這最終一步的示例。
引入babel讓你能使用最新的ES特性(這些庫主要是為了ES6+轉ES5,還有些pollyfill等等,這里不做過多的解釋,具體可參考babel官方文檔)。
npm install --save-dev @babel/core @babel/plugin-transform-runtime @babel/preset-env babel-loader
npm install --save core-js @babel/runtime
引入gulp,運行npm install --save-dev gulp gulp-if gulp-imagemin rimraf安裝依賴。
創建gulpfile.js
const {
 src,
 dest,
 parallel
} = require('gulp')
const path = require('path')
const gulpif = require('gulp-if')
const imagemin = require('gulp-imagemin')
const webpack = require('webpack')
const webpack_config = require('./webpack.prod')
function copyAssets() {
 return src(['src/**/*', '!src/js/**'])
  .pipe(gulpif(
   file => path.extname(file.relative) === '.png',
   imagemin([imagemin.optipng({
    optimizationLevel: 3
   })], {
    verbose: true
   })))
  .pipe(dest('dist'))
}
function jsBundle(next) {
 const compiler = webpack(webpack_config)
 compiler.run((err, stats) => {
  if (err || stats.hasErrors()) {
   console.error(stats.toJson().errors)
  }
  next()
 })
}
exports.dist = parallel(copyAssets, jsBundle)在package.json中script節加入構建相關命令,然后run npm build就能成功打包了!
{
 "name": "pixi-webpack-demo",
 "version": "1.0.0",
 "description": "make pixi.js game with webpack and gulp",
 "main": "src/js/main.js",
 "scripts": {
  "start": "webpack-dev-server --open 'google chrome' --config webpack.dev.js",
  "clean": "rimraf dist",
  "prebuild": "npm run clean",
  "build": "gulp dist"
 },
 "author": "yulijun",
 "keywords": ["pixi.js","webpack"],
 "license": "MIT",
 "devDependencies": {
  "@babel/core": "^7.8.4",
  "@babel/plugin-transform-runtime": "^7.8.3",
  "@babel/preset-env": "^7.8.4",
  "babel-loader": "^8.0.6",
  "rimraf": "^3.0.2",
  "gulp": "^4.0.0",
  "gulp-if": "^2.0.2",
  "gulp-imagemin": "^4.1.0",
  "webpack": "^4.41.5",
  "webpack-cli": "^3.3.10",
  "webpack-dev-server": "^3.10.3",
  "webpack-merge": "^4.2.2"
 },
 "dependencies": {
  "@babel/runtime": "^7.8.4",
  "core-js": "^3.6.4",
  "pixi.js": "^5.2.1"
 }
}恭喜你,至此開發和構建環境已經全部完成,可嘗試在源碼中添加一些es6+語法,然后運行npm run build構建項目,最終打包好的項目會在dist目錄中,js已經被混淆并合并為game.min.js,無用的引用通過tree shake已經被去掉了,包尺寸優化到了最小,而且所有es6+的語法均轉換為es5以適應更多的瀏覽器。所有的圖片也都進行了壓縮處理。
以上是“怎么使用webpack搭建pixi.js開發環境”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注創新互聯行業資訊頻道!
                網站名稱:怎么使用webpack搭建pixi.js開發環境
                
                URL鏈接:http://www.yijiale78.com/article4/ghdjie.html
            
成都網站建設公司_創新互聯,為您提供網站改版、網站內鏈、服務器托管、域名注冊、網站營銷、品牌網站設計
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯
