2017-09-28 18 views
0

私はコンパイルされたnode.jsアプリケーションで単純なデータベースを使いたいと思っています。データベースを個別にインストールする必要はありませんか?つまり、データベースを.exeファイルに含めて、そのファイルをコピーして実行できるようにします。node.js実行可能パッケージにsqlite3をパッケージ化する方法は?

私は.exeファイルを作成するためにpkgを使用していますし、それがうまく動作しますが、私は次の警告を実行しようとしたとき、私はsqlite3 NPMモジュールに.exeのエラーを使用する場合:

pkg/prelude/bootstrap.js:1155 
     throw error; 
    ^

Error: Cannot find module 'C:\snapshot\sqlite\node_modules\sqlite3\lib\binding\node-v51-win32-x64\node_sqlite3.node' 
1) If you want to compile the package/file into executable, please pay attention to compilation warnings and specify a literal in 'require' call. 2) If you don't want to compile the package/file into executable and want to 'require' it from filesystem (likely plugin), specify an absolute path in 'require' call using process.cwd() or process.execPath. 
    at Function.Module._resolveFilename (module.js:470:15) 
    at Function.Module._resolveFilename (pkg/prelude/bootstrap.js:1252:46) 
    at Function.Module._load (module.js:418:25) 
    at Module.require (module.js:498:17) 
    at Module.require (pkg/prelude/bootstrap.js:1136:31) 
    at require (internal/module.js:20:19) 
    at Object.<anonymous> (C:\snapshot\sqlite\node_modules\sqlite3\lib\sqlite3.js:4:15) 
    at Module._compile (pkg/prelude/bootstrap.js:1226:22) 
    at Object.Module._extensions..js (module.js:580:10) 
    at Module.load (module.js:488:32) 

に見えますhttps://github.com/zeit/pkg/issues/183(これはユーザーの問題であると思われるので修正されています)

エラーメッセージを確認すると、...../bide_sqlit3.nodeファイルが見つからないようです。そして、私の開発env(モジュールが動作するところ)でnode_modules/を見て、私はそのファイルを見つけることができません。

  1. pkgバイナリ
  2. 内のファイルがパスするファイルへのパスを変更し含ませます。だから私は、ファイルが実行可能ファイルに含まれており、私は何かをする必要があるとされていないことを前提としていバイナリファイル

zeit/pkgでどうすればいいですか?またはこれがもっと正しい場合、npmがバイナリをnode_modulesにインストールしてからバイナリを参照するようにするにはどうすればよいですか?

答えて

0

構築ノード-sqlite3.nodeは、pkgで構築したバイナリと同じディレクトリ(this issueに記載されています)に置く必要があります。このファイルは、node_modules/sqlite3/lib/binding/node-vxx-xxxxx-xxx/node_sqlite3.nodeにあります。

また、sqlite3をビルドしたものと同じノードバージョンのpkgを使用してプロジェクトを構築する必要があります。

+0

これは動作しませんこの問題を参照してくださいhttps://stackoverflow.com/questions/47789200/how-to-use-pkg-to-make-node-app-an-executable-with-a-native-dependency –

+0

@ simon-pr:私の答えは、pkgマニュアル(https://github.com/zeit/pkg#native-addons)も反映しているので、問題はpkgのバグかもしれません。 –

関連する問題