最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

electron 如何將任意資源打包的方法步驟

 更新時間:2020年04月16日 11:27:40   作者:kross  
這篇文章主要介紹了electron 如何將任意資源打包的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

如何打包資源

只想寫個圖形小工具,本質上還是調(diào)用寫好的 java 程序,因為我覺得在命令行里面來回切目錄,復制路徑等操作實在是太麻煩了。

那么我現(xiàn)在已經(jīng)搞定了如何從 electron 的 js 事件里獲得文件路徑,我也搞定了如何在 electron 的 main.js 里面創(chuàng)建新的進程執(zhí)行指令,那么如何使用到打包好的 jar 包或者其他資源呢?

直接看下 packages.json 里面吧。

{
 "name": "....",
 "version": "1.0.0",
 "description": "",
 "main": "main.js",
 "scripts": {
  "start": "export FAVOR=debug && electron .",
  "pack": "electron-packager ./ yourAppName --platform=darwin --arch=x64 --app-version=0.0.1 --app-bundle-id=com.xxxx.yourAppName --out=build --overwrite --extra-resource='./extraResources'"
 },
 "build": {
  "extraResources": [
   "./extraResources/**"
  ]
 },
 
}

需要注意的是 build 里面加了一個 extraResources,另外,通過 electron-packager 打包的參數(shù)里面也加上一個 --extra-resource='./extraResources'

然后打包的時候就可以把你想要的任何文件打包進去了,jar 也好,python 腳本也好。

如何引用資源

需要注意的是,debug 運行和 release 運行是不一樣的,這里,我們就需要一個東西來在運行時區(qū)分,我現(xiàn)在是 debug 還是 release。

注意上面的 json 腳本中,有一個 export FAVOR=debug,這個相當于在 debug 運行的時候加入了一個環(huán)境變量。

怎么讀取環(huán)境變量呢?在 main.js 里面這樣讀?。?/p>

console.log("favor: " + process.env.FAVOR)

接下來就是區(qū)分運行時來獲取資源路徑了。

function getResPath() {
 if (isDebug) {
  return "./extraResources"
 } else {
  return process.resourcesPath + "/extraResources"
 }
}

僅此記錄一下,給可能需要的人。

electron打包的一些坑

我們知道使用electron打包的時候設置asar為true,electron-builder會智能的把一些native的程序不打包到app.asar里面,但是我碰到一個很奇怪的問題,周五的時候需要使用語音的格式轉換,用到了amrToMp3和ffmpeg-static這兩個庫,其中amrToMp3的主要代碼:

const exec = require('child_process').exec
const path = require('path')
const ffmpeg = require('ffmpeg-static')
const ffmpegPath = ffmpeg.path
function amrToMp3(filepath, outputDir = './src/mp3') {
 return new Promise((resolve, reject) => {
  const basename = path.basename(filepath)
  const filename = basename.split('.')[0]
  const etc = basename.split('.')[1]
  if (etc != 'amr') {
   console.log('please input a amr file')
   return
  }
  const cmdStr = `${ffmpegPath} -y -i ${filepath} ${outputDir}/${filename}.mp3`
  exec(cmdStr, (err, stdout, stderr) => {
   if (err) {
    console.log('error:' + stderr)
    reject('error:' + stderr)
   } else {
    resolve(`${outputDir}/${filename}.mp3`)
    console.log(`transform to mp3 success! ${filepath}->${outputDir}/${filename}.mp3`)
   }
  })
 })
}

其中用到了exec這個命令,ffmpegPath打包后基本是****/app.asar/src/node_modules/ffmpeg-static/bin/darwin/x64/ffmpeg,但是打包后運行提示了can not found ****/app.asar/src/node_modules/ffmpeg-static/bin/darwin/x64/ffmpeg 很尷尬,但是我去解壓了,明明是存在的,后來我去看了類似的一個庫node-notifier,發(fā)現(xiàn)用的是execFile這個命令,然后我修改了一下,結果。。。。居然就可以了。這個地方誰知道原因,求解答。。。。

修改之后的程序代碼:

var ffmpegPath = path.join(
 __dirname,
 'bin',
 platform,
 arch,
 platform === 'win32' ? 'ffmpeg.exe' : 'ffmpeg'
)

execFile(ffmpegPath, ['-y', '-i', inputPath, cmdStr], function (err, stdout, stderr) {
 if (err) {
  console.log('error:' + stderr);
  reject('error:' + stderr);
 } else {
  resolve(outputDir + '/' + filename + '.mp3');
  console.log('transform to mp3 success! ' + filepath + '->' + outputDir + '/' + filename + '.mp3');
 }
});

到此這篇關于electron 如何將任意資源打包的方法步驟的文章就介紹到這了,更多相關electron 任意資源打包 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • JavaScript對象屬性檢查、增加、刪除、訪問操作實例

    JavaScript對象屬性檢查、增加、刪除、訪問操作實例

    這篇文章主要介紹了JavaScript對象屬性檢查、增加、刪除、訪問操作實例,本文分別給出代碼實例來講解如何給對象增加屬性、檢查屬性存在、以及刪除和訪問屬性,需要的朋友可以參考下
    2015-07-07
  • Js 訂制自己的AlertBox(信息提示框)

    Js 訂制自己的AlertBox(信息提示框)

    這是一篇譯文,實例分析制作自定義的信息提示框的實現(xiàn)代碼
    2009-01-01
  • JavaScript學習小結之使用canvas畫“哆啦A夢”時鐘

    JavaScript學習小結之使用canvas畫“哆啦A夢”時鐘

    這篇文章主要介紹了JavaScript學習小結之使用canvas畫“哆啦A夢”時鐘的相關資料,需要的朋友可以參考下
    2016-07-07
  • JavaScript一元正號運算符示例代碼

    JavaScript一元正號運算符示例代碼

    這篇文章主要給大家介紹了關于JavaScript一元正號運算符的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用JavaScript具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-06-06
  • 使用js實現(xiàn)瀑布流效果

    使用js實現(xiàn)瀑布流效果

    這篇文章主要為大家詳細介紹了使用js實現(xiàn)瀑布流效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 送你43道JS面試題(收藏)

    送你43道JS面試題(收藏)

    這篇文章主要介紹了送你43道JS面試題,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-06-06
  • javascript下載文件5種方式實例詳解

    javascript下載文件5種方式實例詳解

    在Web開發(fā)中文件下載功能是一個非常常見的功能,這篇文章主要給大家介紹了關于javascript下載文件5種方式的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-11-11
  • JavaScript實現(xiàn)按Ctrl鍵打開新頁面

    JavaScript實現(xiàn)按Ctrl鍵打開新頁面

    這篇文章主要介紹了JavaScript實現(xiàn)按Ctrl鍵打開新頁面的例子,本文方法適用HTML5環(huán)境中,需要的朋友可以參考下
    2014-09-09
  • 如何在javascript 中使用 xmlHttpRequest 發(fā)送 POST 請求

    如何在javascript 中使用 xmlHttpRequest 發(fā)送 POST

    本文將通過不同的示例解釋如何使用JavaScript代碼在AJAX編程中發(fā)送 XMLHttpRequest post 請求,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2023-07-07
  • TypeScript類型斷言VS類型守衛(wèi)示例詳解

    TypeScript類型斷言VS類型守衛(wèi)示例詳解

    這篇文章主要為大家介紹了TypeScript類型斷言VS類型守衛(wèi)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11

最新評論

女性| 洛川县| 通城县| 长治市| 晋江市| 什邡市| 宁陕县| 莲花县| 北票市| 鄂托克旗| 嵩明县| 特克斯县| 建阳市| 江川县| 宜宾市| 大同市| 濉溪县| 晋江市| 平湖市| 延吉市| 扬中市| 罗田县| 义乌市| 莱芜市| 龙井市| 崇文区| 盐津县| 襄城县| 溧阳市| 宿迁市| 合水县| 东辽县| 美姑县| 蓝山县| 黄浦区| 固原市| 南阳市| 永寿县| 莆田市| 华阴市| 绥滨县|