今回吐かれたエラーの内容
以下のエラーを吐かれました。
ざっくり言うと「package.jsonのdependenciesにelectronが無いぞ」ってものです。
(node:30436) UnhandledPromiseRejectionWarning: Error: Unable to find all properties in parent package.json files. Missing props: ["dependencies.electron","devDependencies.electron","dependencies.electron-nightly","devDependencies.electron-nightly","dependencies.electron-prebuilt-compile","devDependencies.electron-prebuilt-compile","dependencies.electron-prebuilt","devDependencies.electron-prebuilt"] at C:\~\build\node_modules\get-package-info\lib\index.js:23:17 at tryCatcher (C:\~\build\node_modules\bluebird\js\release\util.js:16:23) at Promise._settlePromiseFromHandler (C:\~\build\node_modules\bluebird\js\release\promise.js:517:31) at Promise._settlePromise (C:\~\build\node_modules\bluebird\js\release\promise.js:574:18) at Promise._settlePromise0 (C:\~\build\node_modules\bluebird\js\release\promise.js:619:10) at Promise._settlePromises (C:\~\build\node_modules\bluebird\js\release\promise.js:699:18) at _drainQueueStep (C:\~\build\node_modules\bluebird\js\release\async.js:138:12) at _drainQueue (C:\~\build\node_modules\bluebird\js\release\async.js:131:9) at Async._drainQueues (C:\~\build\node_modules\bluebird\js\release\async.js:147:5) at Immediate.Async.drainQueues [as _onImmediate] (C:\~\build\node_modules\bluebird\js\release\async.js:17:14) at runCallback (timers.js:705:18) at tryOnImmediate (timers.js:676:5) at processImmediate (timers.js:658:5) (node:30436) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2) (node:30436) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
対処法
package.jsonが存在するディレクトリで"npm i electron"するだけ。
なんでエラー吐かれたの?
Electronをグローバルインストールして開発を行っていたため、package.jsonに使用しているモジュール(ここではelectron)が記載されていなかったため。
エラーはしっかり読もう
おまけ
ビルドに使用しているソースを乗っけておきます。誰得
var packager = require('electron-packager') var src = '../app' var config = require(src + '/package.json') const builder = require('electron-builder'); var version = config.version // electron-builderを使用する場合はこちら builder.build({ platform: 'win', config: { 'directories': { 'app': '../app', 'output': '../packaged/' + version }, 'appId': '', 'productName': '', 'buildVersion': version, 'win':{ 'icon': '../app/src/icon.ico', 'target': { 'target': 'portable', 'arch': ['x64'] } } } }); // electron-packagerを使用する場合はこちら packager({ dir: src, out: '../packaged/' + version, name: '', platform: 'win32', arch: 'x64', icon: '../app/src/icon.ico', 'app-bundle-id': '', 'app-version': version, overwrite: true, asar: true, prune: true })
コメント