現在sqlite3を利用したElectronアプリの開発を行っています。
利用者が多いと思われるユーザ層はWindowsなのですが、ひとまずOSX上での動作を行いたいと思っています。
npm i sqlite3 --save
でsqlite3を入れ、
ソースコード中にvar sqlite3 = require('sqlite3').verbose();
と記述すると例外エラーでストップしてしまいます。
なお、ソースコードに記述せずにdeveloper toolsから起動し、requireを書いた場合は正常に動作します。
エラー内容の一部は以下のとおりです。
[0] ERROR in ./~/sqlite3/~/node-pre-gyp/lib/node-pre-gyp.js [0] Module not found: Error: Cannot resolve 'file' or 'directory' ../package in /Users/UserName/src/electron/AppName/node_modules/sqlite3/node_modules/node-pre-gyp/lib [0] @ ./~/sqlite3/~/node-pre-gyp/lib/node-pre-gyp.js 60:16-37 [0] [0] ERROR in ./~/npm/bin/npm-cli.js [0] Module parse failed: /Users/UserName/src/electron/AppName/node_modules/npm/bin/npm-cli.js Line 1: Unexpected token ILLEGAL [0] You may need an appropriate loader to handle this file type. [0] | #!/usr/bin/env node [0] | ;(function () { // wrapper in case we're in module_context mode [0] | [0] @ ./~/npm/lib/npm.js 392:4-32 [0] [0] ERROR in ./~/npm/~/opener/opener.js [0] Module parse failed: /Users/UserName/src/electron/AppName/node_modules/npm/node_modules/opener/opener.js Line 1: Unexpected token ILLEGAL [0] You may need an appropriate loader to handle this file type. [0] | #!/usr/bin/env node [0] | [0] | "use strict"; [0] @ ./~/npm/lib/bugs.js 7:13-30 [0] [0] ERROR in ./~/npm/~/normalize-package-data/lib/fixer.js [0] Module not found: Error: Cannot resolve 'file' or 'directory' ./typos in /Users/UserName/src/electron/AppName/node_modules/npm/node_modules/normalize-package-data/lib [0] @ ./~/npm/~/normalize-package-data/lib/fixer.js 8:12-30 [0] [0] ERROR in ./~/npm/~/npm-registry-client/test/access.js [0] Module not found: Error: Cannot resolve module 'tap' in /Users/UserName/src/electron/AppName/node_modules/npm/node_modules/npm-registry-client/test [0] @ ./~/npm/~/npm-registry-client/test/access.js 1:11-25 [0] [0] ERROR in ./~/npm/~/npm-registry-client/test/00-setup.js [0] Module not found: Error: Cannot resolve module 'tap' in /Users/UserName/src/electron/AppName/node_modules/npm/node_modules/npm-registry-client/test [0] @ ./~/npm/~/npm-registry-client/test/00-setup.js 1:10-24 [0] [0] ERROR in ./~/npm/~/npm-registry-client/test/adduser-update.js [0] Module not found: Error: Cannot resolve module 'tap' in /Users/UserName/src/electron/AppName/node_modules/npm/node_modules/npm-registry-client/test [0] @ ./~/npm/~/npm-registry-client/test/adduser-update.js 1:10-24 [0] [0] ERROR in ./~/npm/~/npm-registry-client/test/adduser-new.js [0] Module not found: Error: Cannot resolve module 'tap' in /Users/UserName/src/electron/AppName/node_modules/npm/node_modules/npm-registry-client/test [0] @ ./~/npm/~/npm-registry-client/test/adduser-new.js 1:10-24 [0] [0] ERROR in ./~/npm/~/npm-registry-client/test/config-defaults.js [0] Module not found: Error: Cannot resolve module 'tap' in /Users/UserName/src/electron/AppName/node_modules/npm/node_modules/npm-registry-client/test [0] @ ./~/npm/~/npm-registry-client/test/config-defaults.js 1:11-25 [0] [0] ERROR in ./~/npm/~/npm-registry-client/test/adduser.js [0] Module not found: Error: Cannot resolve module 'tap' in /Users/UserName/src/electron/AppName/node_modules/npm/node_modules/npm-registry-client/test [0] @ ./~/npm/~/npm-registry-client/test/adduser.js 1:11-25
Using node_sqlite3 with Electronを参考に、同様の動作をしたのですが、解決しませんでした。
現在開発中のElectronは0.37.2であったため、そことnode-vはディレクトリを確認し、v47を指定しています。
知見がある方がいましたらお助けして頂けると助かります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。