前端項目打包成為exe


1.安裝webpack

  //全局安裝

npm install -g webpack

//安裝到你的項目目錄

npm install --save-dev webpack

2.

babel  Babel其實是幾個模塊化的包,其核心功能位於稱為babel-core的npm包中,webpack可以把其不同的包整合在一起使用,對於每一個你需要的

 

功能或拓展,你都需要安裝單獨的包(用得最多的是解析Es6的babel-env-preset包和解析JSX的babel-preset-react包)。

// npm一次性安裝多個依賴模塊,模塊之間用空格隔開

npm install --save-dev babel-core babel-loader babel-preset-env babel-preset-react

3.

//安裝 React 和 React-DOM

npm install --save react react-dom

4.

//安裝css依賴

npm install --save-dev style-loader css-loader

 

//全局安裝webpack-cli

 npm install webpack-cli -g

 

5

//安裝插件

npm install --save-dev html-webpack-plugin

需要准備的文件:main.js ,webpack-cfig.js,package.json.

main.js :

require('./js/json2.js');

require('./js/ts.js');

require('./js/mqttws31.min.js');

require('./js/index.js');

 

webpack-cfig.js:

var webpack = require('webpack');//引入webpack

module.exports = {

  entry:__dirname+"/main.js",//主入口,必寫項

  output: {

    publicPath:'./out/',

    path: __dirname+"/out",//輸出路徑

    filename: "bundle.js"//輸出名字

  },

 //讀取js和css

  module: {

    rules: [

          

           {

             test: /(\.jsx|\.js)$/,

             use: {

                 loader: "babel-loader",

           },

           exclude: /node_modules/

           },

           {

             test: /\.css$/,

             use: [{

                 loader: "style-loader"

           },

           {

                 loader: "css-loader"

             }]

           },

           {

             test:/.(jpg|png)$/,

             use: [{

                 loader: "file-loader"

             }]

           },

          

      ]

  },

//引入jquery。

 plugins:[

   new webpack.ProvidePlugin({

      $: "jquery",

      jQuery: "jquery"

    })

 

   ]

 

}

 

 

package.json:

 

{

           "name": "TicketShow",

           "main": "TicketShow/index.html",//主入口

           "window": {

                      "fullscreen": true,

                      "resizable": false

           },

           "webkit": {

                      "plugin": true

           },

           "devDependencies": {

                      "babel-core": "^6.26.3",

                      "babel-loader": "^7.1.5",

                      "babel-preset-env": "^1.7.0",

                      "babel-preset-react": "^6.24.1",

                      "css-loader": "^1.0.0",

                      "html-webpack-plugin": "^3.2.0",

                      "style-loader": "^0.23.0",

                      "webpack": "^4.17.2"

           },

           "dependencies": {

                      "react": "^16.5.0",

                      "react-dom": "^16.5.0",

                      "requirejs-text": "^2.0.15",

                      "webpack-cli": "^3.1.0",

                      "webpack-command": "^0.4.1"

           }

}

 

設置完以后直接在命令行中運行webpack.本地會生成out文件夾,文件夾內會生成bundle。Js和依賴的圖片。

 

到此為止,項目打包完成。

注意:webpack打包是以模塊為主,所以打包js后方法變成局部變量,在html中調用js中的方法無效。所以需要將方法設為全局變量:Window.方法名=function(){方法內容}

 

6.將打包好的項目壓縮成exe。

用到的工具nw.js.和enigma virtual box。

(1)  將項目壓縮成壓縮包,然后把后綴名改為nw。

(2)  將壓縮包放到nw工具的根目錄。用命令行執行:

copy /b nw.exe+app.nw app.exe。

會在本地生成app.exe.

到此為止,項目可以正常啟動。

我們是發布所用,所以需要將app和nw打包到一起。

啟動enigma virtual box。

 

選擇Input和Output文件,將locales和pnacl兩個文件夾拖入,然后點擊add按鈕添加剩下的不包含我們自己創建的文件。

點擊Process,等待一會看到File successfully save則表示成功,app_boxed.exe這個文件就可以在任何目錄下獨立運行了。

參考資料:https://segmentfault.com/a/1190000006178770

https://jingyan.baidu.com/article/3065b3b6a06c92becff8a483.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM