oracle / node-oracledb

Oracle Database driver for Node.js maintained by Oracle Corp.
http://oracle.github.io/node-oracledb/
Other
2.25k stars 1.07k forks source link

On Atlantis-Software/knex tree im getting Module not found: Error: Cannot resolve 'file' or 'directory' ../build/Release/oracledb #424

Closed day0ops closed 8 years ago

day0ops commented 8 years ago

Getting the error Module not found: Error: Cannot resolve 'file' or 'directory' ../build/Release/oracledb Any idea whats going on ?

The steps I took to build,

  1. npm i oracledb --save
  2. npm i

The full output of npm i is as follows,

> knex@0.10.0 prepublish /Volumes/STORAGE/Projects/Node_Packages/knex
> npm run build

> knex@0.10.0 build /Volumes/STORAGE/Projects/Node_Packages/knex
> ./scripts/build.sh

npm WARN deprecated graceful-fs@3.0.8: graceful-fs v3.0.0 and before will fail on node releases >= v6.0. Please update to graceful-fs@^4.0.0 as soon as possible. Use 'npm ls graceful-fs' to find it in the tree.
\
> fsevents@1.0.12 install /Volumes/STORAGE/Projects/Node_Packages/knex/node_modules/webpack/node_modules/watchpack/node_modules/chokidar/node_modules/fsevents
> node-pre-gyp install --fallback-to-build

[fsevents] Success: "/Volumes/STORAGE/Projects/Node_Packages/knex/node_modules/webpack/node_modules/watchpack/node_modules/chokidar/node_modules/fsevents/lib/binding/Release/node-v46-darwin-x64/fse.node" is installed via remote
webpack@1.8.11 node_modules/webpack
├── interpret@0.5.2
├── supports-color@1.3.1
├── clone@0.1.19
├── tapable@0.1.10
├── memory-fs@0.2.0
├── esprima@1.2.5
├── webpack-core@0.6.8 (source-list-map@0.1.6, source-map@0.4.4)
├── enhanced-resolve@0.8.6 (graceful-fs@3.0.8)
├── optimist@0.6.1 (wordwrap@0.0.3, minimist@0.0.10)
├── uglify-js@2.4.24 (async@0.2.10, uglify-to-browserify@1.0.2, source-map@0.1.34, yargs@3.5.4)
├── node-libs-browser@0.4.3 (https-browserify@0.0.0, tty-browserify@0.0.0, constants-browserify@0.0.1, path-browserify@0.0.0, punycode@1.4.1, string_decoder@0.10.31, process@0.10.1, os-browserify@0.1.2, stream-browserify@1.0.0, assert@1.3.0, domain-browser@1.1.7, querystring-es3@0.2.1, util@0.10.3, events@1.1.0, timers-browserify@1.4.2, console-browserify@1.1.0, vm-browserify@0.0.4, url@0.10.3, http-browserify@1.7.0, buffer@3.6.0, browserify-zlib@0.1.4, crypto-browserify@3.2.8)
└── watchpack@0.2.9 (graceful-fs@4.1.3, chokidar@1.4.3)
src/bin/cli.js -> lib/bin/cli.js
src/client.js -> lib/client.js
src/connection/index.js -> lib/connection/index.js
src/dialects/maria/index.js -> lib/dialects/maria/index.js
src/dialects/maria/transaction.js -> lib/dialects/maria/transaction.js
src/dialects/mssql/formatter.js -> lib/dialects/mssql/formatter.js
src/dialects/mssql/index.js -> lib/dialects/mssql/index.js
src/dialects/mssql/query/compiler.js -> lib/dialects/mssql/query/compiler.js
src/dialects/mssql/schema/columncompiler.js -> lib/dialects/mssql/schema/columncompiler.js
src/dialects/mssql/schema/compiler.js -> lib/dialects/mssql/schema/compiler.js
src/dialects/mssql/schema/tablecompiler.js -> lib/dialects/mssql/schema/tablecompiler.js
src/dialects/mssql/transaction.js -> lib/dialects/mssql/transaction.js
src/dialects/mysql/index.js -> lib/dialects/mysql/index.js
src/dialects/mysql/query/compiler.js -> lib/dialects/mysql/query/compiler.js
src/dialects/mysql/schema/columncompiler.js -> lib/dialects/mysql/schema/columncompiler.js
src/dialects/mysql/schema/compiler.js -> lib/dialects/mysql/schema/compiler.js
src/dialects/mysql/schema/tablecompiler.js -> lib/dialects/mysql/schema/tablecompiler.js
src/dialects/mysql/transaction.js -> lib/dialects/mysql/transaction.js
src/dialects/mysql2/index.js -> lib/dialects/mysql2/index.js
src/dialects/mysql2/transaction.js -> lib/dialects/mysql2/transaction.js
src/dialects/oracle/formatter.js -> lib/dialects/oracle/formatter.js
src/dialects/oracle/index.js -> lib/dialects/oracle/index.js
src/dialects/oracle/query/compiler.js -> lib/dialects/oracle/query/compiler.js
src/dialects/oracle/schema/columnbuilder.js -> lib/dialects/oracle/schema/columnbuilder.js
src/dialects/oracle/schema/columncompiler.js -> lib/dialects/oracle/schema/columncompiler.js
src/dialects/oracle/schema/compiler.js -> lib/dialects/oracle/schema/compiler.js
src/dialects/oracle/schema/tablecompiler.js -> lib/dialects/oracle/schema/tablecompiler.js
src/dialects/oracle/stream.js -> lib/dialects/oracle/stream.js
src/dialects/oracle/transaction.js -> lib/dialects/oracle/transaction.js
src/dialects/oracle/utils.js -> lib/dialects/oracle/utils.js
src/dialects/oracledb/formatter.js -> lib/dialects/oracledb/formatter.js
src/dialects/oracledb/index.js -> lib/dialects/oracledb/index.js
src/dialects/oracledb/query/compiler.js -> lib/dialects/oracledb/query/compiler.js
src/dialects/oracledb/schema/columncompiler.js -> lib/dialects/oracledb/schema/columncompiler.js
src/dialects/oracledb/transaction.js -> lib/dialects/oracledb/transaction.js
src/dialects/oracledb/utils.js -> lib/dialects/oracledb/utils.js
src/dialects/postgres/index.js -> lib/dialects/postgres/index.js
src/dialects/postgres/query/compiler.js -> lib/dialects/postgres/query/compiler.js
src/dialects/postgres/schema/columncompiler.js -> lib/dialects/postgres/schema/columncompiler.js
src/dialects/postgres/schema/compiler.js -> lib/dialects/postgres/schema/compiler.js
src/dialects/postgres/schema/tablecompiler.js -> lib/dialects/postgres/schema/tablecompiler.js
src/dialects/postgres/utils.js -> lib/dialects/postgres/utils.js
src/dialects/sqlite3/index.js -> lib/dialects/sqlite3/index.js
src/dialects/sqlite3/query/compiler.js -> lib/dialects/sqlite3/query/compiler.js
src/dialects/sqlite3/schema/columncompiler.js -> lib/dialects/sqlite3/schema/columncompiler.js
src/dialects/sqlite3/schema/compiler.js -> lib/dialects/sqlite3/schema/compiler.js
src/dialects/sqlite3/schema/ddl.js -> lib/dialects/sqlite3/schema/ddl.js
src/dialects/sqlite3/schema/tablecompiler.js -> lib/dialects/sqlite3/schema/tablecompiler.js
src/dialects/strong-oracle/index.js -> lib/dialects/strong-oracle/index.js
src/dialects/websql/index.js -> lib/dialects/websql/index.js
src/dialects/websql/transaction.js -> lib/dialects/websql/transaction.js
src/formatter.js -> lib/formatter.js
src/functionhelper.js -> lib/functionhelper.js
src/helpers.js -> lib/helpers.js
src/index.js -> lib/index.js
src/interface.js -> lib/interface.js
src/migrate/index.js -> lib/migrate/index.js
src/migrate/migrate-stub.js -> lib/migrate/migrate-stub.js
src/promise.js -> lib/promise.js
src/query/builder.js -> lib/query/builder.js
src/query/compiler.js -> lib/query/compiler.js
src/query/joinclause.js -> lib/query/joinclause.js
src/query/methods.js -> lib/query/methods.js
src/query/string.js -> lib/query/string.js
src/raw.js -> lib/raw.js
src/runner.js -> lib/runner.js
src/schema/builder.js -> lib/schema/builder.js
src/schema/columnbuilder.js -> lib/schema/columnbuilder.js
src/schema/columncompiler.js -> lib/schema/columncompiler.js
src/schema/compiler.js -> lib/schema/compiler.js
src/schema/helpers.js -> lib/schema/helpers.js
src/schema/tablebuilder.js -> lib/schema/tablebuilder.js
src/schema/tablecompiler.js -> lib/schema/tablecompiler.js
src/seed/index.js -> lib/seed/index.js
src/seed/seed-stub.js -> lib/seed/seed-stub.js
src/statement.js -> lib/statement.js
src/transaction.js -> lib/transaction.js
src/util/bluebird.js -> lib/util/bluebird.js
src/util/make-client.js -> lib/util/make-client.js
src/util/make-knex.js -> lib/util/make-knex.js
src/util/noop.js -> lib/util/noop.js
src/util/parse-connection.js -> lib/util/parse-connection.js
Hash: 1007b444412fe1cf9feb
Version: webpack 1.8.11
Time: 1298ms
  Asset    Size  Chunks             Chunk Names
knex.js  587 kB       0  [emitted]  main
   [0] ./tmp/lib/index.js 1.86 kB {0} [built]
   [2] ./tmp/lib/raw.js 4.22 kB {0} [built]
   [3] ./tmp/lib/helpers.js 1.2 kB {0} [built]
   [4] ./tmp/lib/client.js 7.96 kB {0} [built]
   [5] ./tmp/lib/util/make-client.js 2.21 kB {0} [built]
   [6] ./tmp/lib/util/make-knex.js 3.72 kB {0} [built]
   [7] ./tmp/lib/util/parse-connection.js 1.59 kB {0} [built]
   [8] ./tmp/lib/dialects ^\.\/.*\/index\.js$ 389 bytes {0} [built]
   [9] ./tmp/lib/promise.js 236 bytes {0} [built]
  [10] ./tmp/lib/dialects/websql/index.js 3.3 kB {0} [built]
  [13] ./tmp/lib/interface.js 2.63 kB {0} [built]
  [14] ./tmp/lib/runner.js 6.5 kB {0} [built]
  [15] ./tmp/lib/formatter.js 5.56 kB {0} [built]
  [16] ./tmp/lib/transaction.js 8.71 kB {0} [built]
  [17] ./tmp/lib/query/builder.js 23.9 kB {0} [built]
  [18] ./tmp/lib/query/compiler.js 14.1 kB {0} [built]
  [19] ./tmp/lib/schema/builder.js 1.55 kB {0} [built]
  [20] ./tmp/lib/schema/compiler.js 1.89 kB {0} [built]
  [21] ./tmp/lib/schema/tablebuilder.js 6.91 kB {0} [built]
  [22] ./tmp/lib/schema/tablecompiler.js 7.77 kB {0} [built]
  [23] ./tmp/lib/schema/columnbuilder.js 2.71 kB {0} [built]
  [24] ./tmp/lib/schema/columncompiler.js 4.7 kB {0} [built]
  [25] ./tmp/lib/util/noop.js 47 bytes {0} [built]
  [26] ./tmp/lib/query/string.js 3.26 kB {0} [built]
  [27] ./tmp/lib/functionhelper.js 234 bytes {0} [built]
  [28] ./tmp/lib/query/methods.js 1.17 kB {0} [built]
  [29] ./tmp/lib/dialects/maria/index.js 4.28 kB {0} [optional] [built]
  [30] ./tmp/lib/dialects/mssql/index.js 6.33 kB {0} [optional] [built]
  [31] ./tmp/lib/dialects/mysql/index.js 4.33 kB {0} [built]
  [32] ./tmp/lib/dialects/mysql2/index.js 2.59 kB {0} [optional] [built]
  [33] ./tmp/lib/dialects/oracle/index.js 5.5 kB {0} [built]
  [34] ./tmp/lib/dialects/oracledb/index.js 12 kB {0} [optional] [built]
  [35] ./tmp/lib/dialects/postgres/index.js 6.41 kB {0} [optional] [built]
  [36] ./tmp/lib/dialects/sqlite3/index.js 4.81 kB {0} [built]
  [37] ./tmp/lib/dialects/strong-oracle/index.js 438 bytes {0} [optional] [built]
  [38] ./tmp/lib/dialects/websql/transaction.js 1.47 kB {0} [built]
  [54] ./tmp/lib/query/joinclause.js 2.28 kB {0} [built]
  [55] ./tmp/lib/schema/helpers.js 820 bytes {0} [built]
  [56] ./tmp/lib/dialects/maria/transaction.js 1.1 kB {0} [built]
  [57] ./tmp/lib/dialects/mssql/formatter.js 699 bytes {0} [built]
  [58] ./tmp/lib/dialects/mssql/transaction.js 2.78 kB {0} [built]
  [59] ./tmp/lib/dialects/mssql/query/compiler.js 6.08 kB {0} [built]
  [60] ./tmp/lib/dialects/mssql/schema/compiler.js 1.75 kB {0} [built]
  [61] ./tmp/lib/dialects/mssql/schema/tablecompiler.js 5.05 kB {0} [built]
  [62] ./tmp/lib/dialects/mssql/schema/columncompiler.js 2.35 kB {0} [built]
  [63] ./tmp/lib/dialects/mysql/transaction.js 1.09 kB {0} [built]
  [64] ./tmp/lib/dialects/mysql/query/compiler.js 2.28 kB {0} [built]
  [65] ./tmp/lib/dialects/mysql/schema/compiler.js 1.23 kB {0} [built]
  [66] ./tmp/lib/dialects/mysql/schema/tablecompiler.js 7.48 kB {0} [built]
  [67] ./tmp/lib/dialects/mysql/schema/columncompiler.js 2.82 kB {0} [built]
  [68] ./tmp/lib/dialects/mysql2/transaction.js 1.12 kB {0} [built]
  [69] ./tmp/lib/dialects/oracle/formatter.js 876 bytes {0} [built]
  [70] ./tmp/lib/dialects/oracle/transaction.js 1.65 kB {0} [built]
  [71] ./tmp/lib/dialects/oracle/query/compiler.js 8.46 kB {0} [built]
  [72] ./tmp/lib/dialects/oracle/schema/compiler.js 2.3 kB {0} [built]
  [73] ./tmp/lib/dialects/oracle/schema/columnbuilder.js 581 bytes {0} [built]
  [74] ./tmp/lib/dialects/oracle/schema/columncompiler.js 4.21 kB {0} [built]
  [75] ./tmp/lib/dialects/oracle/schema/tablecompiler.js 3.85 kB {0} [built]
  [76] ./tmp/lib/dialects/oracle/stream.js 1.32 kB {0} [built]
  [77] ./tmp/lib/dialects/oracle/utils.js 1.35 kB {0} [built]
  [78] ./tmp/lib/dialects/oracledb/query/compiler.js 9.45 kB {0} [built]
  [79] ./tmp/lib/dialects/oracledb/schema/columncompiler.js 688 bytes {0} [built]
  [80] ./tmp/lib/dialects/oracledb/formatter.js 802 bytes {0} [built]
  [81] ./tmp/lib/dialects/oracledb/utils.js 340 bytes {0} [built]
  [82] ./tmp/lib/dialects/oracledb/transaction.js 1.76 kB {0} [built]
  [83] ./tmp/lib/dialects/postgres/utils.js 2.67 kB {0} [built]
  [84] ./tmp/lib/dialects/postgres/query/compiler.js 2.94 kB {0} [built]
  [85] ./tmp/lib/dialects/postgres/schema/columncompiler.js 2.02 kB {0} [built]
  [86] ./tmp/lib/dialects/postgres/schema/tablecompiler.js 3.61 kB {0} [built]
  [87] ./tmp/lib/dialects/postgres/schema/compiler.js 3.03 kB {0} [built]
  [88] ./tmp/lib/dialects/sqlite3/query/compiler.js 3.71 kB {0} [built]
  [89] ./tmp/lib/dialects/sqlite3/schema/compiler.js 1.27 kB {0} [built]
  [90] ./tmp/lib/dialects/sqlite3/schema/columncompiler.js 580 bytes {0} [built]
  [91] ./tmp/lib/dialects/sqlite3/schema/tablecompiler.js 4.63 kB {0} [built]
  [92] ./tmp/lib/dialects/sqlite3/schema/ddl.js 7.11 kB {0} [built]
    + 76 hidden modules

WARNING in ./~/oracledb/lib/oracledb.js
Module not found: Error: Cannot resolve 'file' or 'directory' ../build/Release/oracledb in /Volumes/STORAGE/Projects/Node_Packages/knex/node_modules/oracledb/lib
 @ ./~/oracledb/lib/oracledb.js 27:18-54

ERROR in ./~/oracledb/lib/oracledb.js
Module not found: Error: Cannot resolve 'file' or 'directory' ../build/Debug/oracledb in /Volumes/STORAGE/Projects/Node_Packages/knex/node_modules/oracledb/lib
 @ ./~/oracledb/lib/oracledb.js 30:19-53
cjbj commented 8 years ago

Did oracledb get installed OK at the start? Try running verbose and debugging a bit (don't post the verbose log to an issue!)

nathanchaneab commented 8 years ago

Im having the same problem, /build/Debug/oracledb does not exit

oracledb has been installed, i can see it in the node-modules list. I use mac and i tried to edit the binding.gyp under oracledb module 'OS=="mac"', { "variables" : { "oci_inc_dir%" : "my inc path", "oci_lib_dir%" : "my lib path", }, } but it doesn't work yet

cjbj commented 8 years ago

@nathanchaneab without knowing exactly what you tried, it's not easy for anyone to comment about what to do. In fact, really the only I can do is say to follow https://github.com/oracle/node-oracledb/blob/master/INSTALL.md#instosx

nathanchaneab commented 8 years ago

https://github.com/oracle/node-oracledb/blob/master/INSTALL.md#instosx @cjbj that's exactly what I did, I followed that guideline completely, and that example script also works. actually i use express, and compile it with electron.

sure i know that's hard to let you understand what exactly my case is. but thanks anyway. then I have to use java lib to work with oracle instead.

cjbj commented 8 years ago

@nathanchaneab With more info we might be able to help. So far I get that you can install and run sample node-oracledb scripts. So what doesn't work?

nathanchaneab commented 8 years ago

@cjbj yep success: terminal run - > node test.js fail: in project - > require('oracledb')

im not sure if its clear enough

cjbj commented 8 years ago

@nathanchaneab what's special about the project? Is 'npm root' not where oracledb was installed? Have you tried setting NODE_PATH?

day0ops commented 8 years ago

Im not sure if my prob was the same as yours .. but I was trying to install oracledb as a dependency within knex rather than at my project level. Once i installed oracledb at my project level this error went away.

nathanchaneab commented 8 years ago

@cjbj 'npm root' is exactly where its installed. the problem is that it loads the module from '../build/Debug/oracledb' of 'node_modules/oracledb/lib', but file oracledb.js should be in 'node_modules/oracledb/lib'

cjbj commented 8 years ago

@nathanchaneab You can see the logic that leads up to that error message: https://github.com/oracle/node-oracledb/blob/master/lib/oracledb.js#L26. Debug/oracledb is just the last place the binary is looked for.

I still can't pinpoint your problem. I don't even know the OS - which might be a clue now or for future readers.

Did you recompile node-oracledb after upgrading Node, are your Oracle client libraries being found?

atiertant commented 8 years ago

@cjbj i seen the same warning every time i install our knex branch... but after oracledb is working... we use linux (fedora and centos) node and Oracle client libraries were installed before all and installing oracledb is working without any problem.

cjbj commented 8 years ago

@atiertant you say node-oracledb was working fine until you installed knex? Can you look for changes in the node_modules/oracledb directory between the two states?

atiertant commented 8 years ago

@cjbj node-oracledb work before and after knex install, but the knex install return an error:

WARNING in ./~/oracledb/lib/oracledb.js
Module not found: Error: Cannot resolve 'file' or 'directory' ../build/Release/oracledb in /home/alex/testoradb/knex/node_modules/oracledb/lib
 @ ./~/oracledb/lib/oracledb.js 32:18-54

ERROR in ./~/oracledb/lib/oracledb.js
Module not found: Error: Cannot resolve 'file' or 'directory' ../build/Debug/oracledb in /home/alex/testoradb/knex/node_modules/oracledb/lib
 @ ./~/oracledb/lib/oracledb.js 35:19-53
cjbj commented 8 years ago

The knex/package.json may need "oracledb": false, added. It should be something like this:

     "browser": {
         "bluebird/js/main/promise": "./lib/util/bluebird.js",
         "./lib/migrate/index.js": "./lib/util/noop.js",
         "./lib/bin/cli.js": "./lib/util/noop.js",
         "./lib/seed/index.js": "./lib/util/noop.js",
         "pool2": "./lib/util/noop.js",
         "mssql": false,
         "mysql": false,
         "mysql2": false,
         "mariasql": false,
         "pg": false,
         "pg-query-stream": false,
         "oracle": false,
         "oracledb": false, 
         "strong-oracle": false,
         "sqlite3": false
       },

@atiertant tested this and reports it seems OK.

cjbj commented 8 years ago

Closing with the above solution as the answer.

atiertant commented 8 years ago

thanks @oracle