5

I just installed macOS Mojave and installed latest versions for node 12.1.0, npm 6.9.0, brew 2.1.1 and Python 2.7.10 on darwin. I am running npm install in a package.json for a project with "sqlite3": "4.0.6" and receive the following log message which fails at the [email protected] install script. How am I able to fix the error and install SQLite successfully? It's breaking and showing error logs at v8 functions, here is the partial snapshot of error logs, I removed some of the v8 errors to post the log.

✗ npm install

> [email protected] install /Users/default/Desktop/personal/default/node_modules/sqlite3
> node-pre-gyp install --fallback-to-build

node-pre-gyp WARN Using request for node-pre-gyp https download 
node-pre-gyp WARN Tried to download(403): https://mapbox-node-binary.s3.amazonaws.com/sqlite3/v4.0.6/node-v72-darwin-x64.tar.gz 
node-pre-gyp WARN Pre-built binaries not found for [email protected] and [email protected] (node-v72 ABI, unknown) (falling back to source compile with node-gyp) 
  ACTION deps_sqlite3_gyp_action_before_build_target_unpack_sqlite_dep Release/obj/gen/sqlite-autoconf-3260000/sqlite3.c
  TOUCH Release/obj.target/deps/action_before_build.stamp
  CC(target) Release/obj.target/sqlite3/gen/sqlite-autoconf-3260000/sqlite3.o
  LIBTOOL-STATIC Release/sqlite3.a
  CXX(target) Release/obj.target/node_sqlite3/src/database.o
In file included from ../src/database.cc:4:
In file included from ../src/database.h:10:
In file included from ../node_modules/nan/nan.h:202:
In file included from ../node_modules/nan/nan_converters.h:67:
../node_modules/nan/nan_converters_43_inl.h:22:1: warning: 'ToBoolean' is deprecated: ToBoolean can never throw. Use Local
      version. [-Wdeprecated-declarations]
X(Boolean)
^
../node_modules/nan/nan_converters_43_inl.h:18:12: note: expanded from macro 'X'
      val->To ## TYPE(isolate->GetCurrentContext())                            \
           ^
<scratch space>:31:1: note: expanded from here
ToBoolean
^
/Users/default/.node-gyp/12.1.0/include/node/v8.h:2523:3: note: 'ToBoolean' has been explicitly marked deprecated here
  V8_DEPRECATE_SOON("ToBoolean can never throw. Use Local version.",
  ^
/Users/default/.node-gyp/12.1.0/include/node/v8config.h:322:29: note: expanded from macro 'V8_DEPRECATE_SOON'
  declarator __attribute__((deprecated(message)))
                            ^
In file included from ../src/database.cc:4:
In file included from ../src/database.h:10:
In file included from ../node_modules/nan/nan.h:202:
In file included from ../node_modules/nan/nan_converters.h:67:
../node_modules/nan/nan_converters_43_inl.h:40:1: warning: 'BooleanValue' is deprecated: BooleanValue can never throw. Use
      Isolate version. [-Wdeprecated-declarations]
X(bool, Boolean)
^
../node_modules/nan/nan_converters_43_inl.h:37:15: note: expanded from macro 'X'
  return val->NAME ## Value(isolate->GetCurrentContext());                     \
              ^
<scratch space>:38:1: note: expanded from here
BooleanValue
^
/Users/default/.node-gyp/12.1.0/include/node/v8.h:2561:3: note: 'BooleanValue' has been explicitly marked deprecated here
  V8_DEPRECATED("BooleanValue can never throw. Use Isolate version.",
  ^
/Users/default/.node-gyp/12.1.0/include/node/v8config.h:307:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
In file included from ../src/database.cc:4:
In file included from ../src/database.h:10:
In file included from ../node_modules/nan/nan.h:203:
In file included from ../node_modules/nan/nan_new.h:189:
../node_modules/nan/nan_implementation_12_inl.h:103:42: error: no viable conversion from 'v8::Isolate *' to 'Local<v8::Context>'
  return scope.Escape(v8::Function::New( isolate
                                         ^~~~~~~
/Users/default/.node-gyp/12.1.0/include/node/v8.h:183:7: note: candidate constructor (the implicit copy constructor) not viable:
      no known conversion from 'v8::Isolate *' to 'const v8::Local<v8::Context> &' for 1st argument
class Local {
      ^
/Users/default/.node-gyp/12.1.0/include/node/v8.h:183:7: note: candidate constructor (the implicit move constructor) not viable:
      no known conversion from 'v8::Isolate *' to 'v8::Local<v8::Context> &&' for 1st argument
/Users/default/.node-gyp/12.1.0/include/node/v8.h:187:13: note: candidate template ignored: could not match
      'Local<type-parameter-0-0>' against 'v8::Isolate *'
  V8_INLINE Local(Local<S> that)
            ^
/Users/default/.node-gyp/12.1.0/include/node/v8.h:4126:22: note: passing argument to parameter 'context' here
      Local<Context> context, FunctionCallback callback,
                     ^
In file included from ../src/database.cc:4:
In file included from ../src/database.h:10:
In file included from ../node_modules/nan/nan.h:203:
In file included from ../node_modules/nan/nan_new.h:189:
../node_modules/nan/nan_implementation_12_inl.h:337:37: error: too few arguments to function call, expected 2, have 1
  return v8::StringObject::New(value).As<v8::StringObject>();
         ~~~~~~~~~~~~~~~~~~~~~      ^
/Users/default/.node-gyp/12.1.0/include/node/v8.h:5380:3: note: 'New' declared here
  static Local<Value> New(Isolate* isolate, Local<String> value);
  ^
In file included from ../src/database.cc:4:
In file included from ../src/database.h:10:
In file included from ../node_modules/nan/nan.h:203:
In file included from ../node_modules/nan/nan_new.h:189:
../node_modules/nan/nan_implementation_12_inl.h:337:58: error: expected '(' for function-style cast or type construction
  return v8::StringObject::New(value).As<v8::StringObject>();
                                         ~~~~~~~~~~~~~~~~^
../node_modules/nan/nan_implementation_12_inl.h:337:60: error: expected expression
  return v8::StringObject::New(value).As<v8::StringObject>();
                                                           ^
In file included from ../src/database.cc:4:
In file included from ../src/database.h:10:
../node_modules/nan/nan.h:1034:44: error: no matching member function for call to 'ToString'
      v8::Local<v8::String> string = from->ToString();
                                     ~~~~~~^~~~~~~~
/Users/default/.node-gyp/12.1.0/include/node/v8.h:2528:44: note: candidate function not viable: requires single argument
      'context', but no arguments were provided
  V8_WARN_UNUSED_RESULT MaybeLocal<String> ToString(
                                           ^
/Users/default/.node-gyp/12.1.0/include/node/v8.h:2544:35: note: candidate function not viable: requires single argument
      'isolate', but no arguments were provided
                    Local<String> ToString(Isolate* isolate) const);
                                  ^
In file included from ../src/database.cc:4:
In file included from ../src/database.h:10:
../node_modules/nan/nan.h:1044:37: error: cannot initialize a parameter of type 'v8::Isolate *' with an lvalue of type 'char *'
        length_ = string->WriteUtf8(str_, static_cast<int>(len), 0, flags);
                                    ^~~~
/Users/default/.node-gyp/12.1.0/include/node/v8.h:2738:26: note: passing argument to parameter 'isolate' here
  int WriteUtf8(Isolate* isolate, char* buffer, int length = -1,
                         ^
In file included from ../src/database.cc:4:
In file included from ../src/database.h:10:
../node_modules/nan/nan.h:1818:28: warning: 'Set' is deprecated: Use maybe version [-Wdeprecated-declarations]
    New(persistentHandle)->Set(New(key).ToLocalChecked(), value);
                           ^
/Users/default/.node-gyp/12.1.0/include/node/v8.h:3358:3: note: 'Set' has been explicitly marked deprecated here
  V8_DEPRECATE_SOON("Use maybe version",
  ^
/Users/default/.node-gyp/12.1.0/include/node/v8config.h:322:29: note: expanded from macro 'V8_DEPRECATE_SOON'
  declarator __attribute__((deprecated(message)))
                            ^
In file included from ../src/database.cc:4:
In file included from ../src/database.h:10:
../node_modules/nan/nan.h:1824:28: warning: 'Set' is deprecated: Use maybe version [-Wdeprecated-declarations]
    New(persistentHandle)->Set(key, value);
                           ^
In file included from ../src/database.cc:4:
In file included from ../src/database.h:10:
In file included from ../node_modules/nan/nan.h:2657:
../node_modules/nan/nan_object_wrap.h:67:18: warning: 'MarkIndependent' is deprecated: Weak objects are always considered
      independent. Use TracedGlobal when trying to use EmbedderHeapTracer. Use a strong handle when trying to keep an object
      alive. [-Wdeprecated-declarations]
    persistent().MarkIndependent();
                 ^
/Users/default/.node-gyp/12.1.0/include/node/v8.h:563:3: note: 'MarkIndependent' has been explicitly marked deprecated here
  V8_DEPRECATED(
  ^
/Users/default/.node-gyp/12.1.0/include/node/v8config.h:307:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
../src/database.cc:40:9: error: too few arguments to function call, expected 3, have 2
        EXCEPTION(Nan::New("Database handle is closed").ToLocalChecked(), SQLITE_MISUSE, exception);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/macros.h:91:13: note: expanded from macro 'EXCEPTION'
            ),                                                                 \
            ^
/Users/default/.node-gyp/12.1.0/include/node/v8.h:2925:3: note: 'Concat' declared here
  static Local<String> Concat(Isolate* isolate, Local<String> left,
  ^
../src/database.cc:49:17: warning: 'MakeCallback' is deprecated [-Wdeprecated-declarations]
                TRY_CATCH_CALL(this->handle(), cb, 1, argv);
                ^
../src/macros.h:109:10: note: expanded from macro 'TRY_CATCH_CALL'
    Nan::MakeCallback((context), (callback), (argc), (argv))
         ^
../node_modules/nan/nan.h:929:3: note: 'MakeCallback' has been explicitly marked deprecated here
  NAN_DEPRECATED inline v8::Local<v8::Value> MakeCallback(
  ^
../node_modules/nan/nan.h:98:40: note: expanded from macro 'NAN_DEPRECATED'
# define NAN_DEPRECATED __attribute__((deprecated))
                                       ^
../src/database.cc:63:13: warning: 'MakeCallback' is deprecated [-Wdeprecated-declarations]
            EMIT_EVENT(handle(), 2, info);
            ^
../src/macros.h:102:5: note: expanded from macro 'EMIT_EVENT'
    TRY_CATCH_CALL((obj),                                                      \
    ^
../src/database.cc:625:9: warning: unused variable 'status' [-Wunused-variable]
    int status = uv_queue_work(uv_default_loop(),
        ^
../src/database.cc:659:9: error: too few arguments to function call, expected 3, have 2
        EXCEPTION(Nan::New(baton->message.c_str()).ToLocalChecked(), baton->status, exception);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/macros.h:91:13: note: expanded from macro 'EXCEPTION'
            ),                                                                 \
            ^
/Users/default/.node-gyp/12.1.0/include/node/v8.h:2925:3: note: 'Concat' declared here
  static Local<String> Concat(Isolate* isolate, Local<String> left,
  ^
../src/database.cc:663:13: warning: 'MakeCallback' is deprecated [-Wdeprecated-declarations]
            TRY_CATCH_CALL(db->handle(), cb, 1, argv);
            ^
../src/macros.h:109:10: note: expanded from macro 'TRY_CATCH_CALL'
    Nan::MakeCallback((context), (callback), (argc), (argv))
         ^
../node_modules/nan/nan.h:929:3: note: 'MakeCallback' has been explicitly marked deprecated here
  NAN_DEPRECATED inline v8::Local<v8::Value> MakeCallback(
  ^
../node_modules/nan/nan.h:98:40: note: expanded from macro 'NAN_DEPRECATED'
# define NAN_DEPRECATED __attribute__((deprecated))
                                       ^
../src/database.cc:667:13: warning: 'MakeCallback' is deprecated [-Wdeprecated-declarations]
            EMIT_EVENT(db->handle(), 2, info);
            ^
../src/macros.h:102:5: note: expanded from macro 'EMIT_EVENT'
    TRY_CATCH_CALL((obj),                                                      \
    ^
../src/macros.h:109:10: note: expanded from macro 'TRY_CATCH_CALL'
    Nan::MakeCallback((context), (callback), (argc), (argv))
         ^
../node_modules/nan/nan.h:929:3: note: 'MakeCallback' has been explicitly marked deprecated here
  NAN_DEPRECATED inline v8::Local<v8::Value> MakeCallback(
  ^
../node_modules/nan/nan.h:98:40: note: expanded from macro 'NAN_DEPRECATED'
# define NAN_DEPRECATED __attribute__((deprecated))
                                       ^
../src/database.cc:672:9: warning: 'MakeCallback' is deprecated [-Wdeprecated-declarations]
        TRY_CATCH_CALL(db->handle(), cb, 1, argv);
        ^
../src/macros.h:109:10: note: expanded from macro 'TRY_CATCH_CALL'
    Nan::MakeCallback((context), (callback), (argc), (argv))
         ^
../node_modules/nan/nan.h:929:3: note: 'MakeCallback' has been explicitly marked deprecated here
  NAN_DEPRECATED inline v8::Local<v8::Value> MakeCallback(
  ^
../node_modules/nan/nan.h:98:40: note: expanded from macro 'NAN_DEPRECATED'
# define NAN_DEPRECATED __attribute__((deprecated))
                                       ^
37 warnings and 13 errors generated.
make: *** [Release/obj.target/node_sqlite3/src/database.o] Error 1
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:262:23)
gyp ERR! stack     at ChildProcess.emit (events.js:196:13)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:256:12)
gyp ERR! System Darwin 18.5.0
gyp ERR! command "/usr/local/Cellar/node/12.1.0/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "build" "--fallback-to-build" "--module=/Users/default/Desktop/personal/default/node_modules/sqlite3/lib/binding/node-v72-darwin-x64/node_sqlite3.node" "--module_name=node_sqlite3" "--module_path=/Users/default/Desktop/personal/default/node_modules/sqlite3/lib/binding/node-v72-darwin-x64" "--napi_version=4" "--node_abi_napi=napi" "--napi_build_version=0" "--node_napi_label=node-v72"
gyp ERR! cwd /Users/default/Desktop/personal/default/node_modules/sqlite3
gyp ERR! node -v v12.1.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok 
node-pre-gyp ERR! build error 
node-pre-gyp ERR! stack Error: Failed to execute '/usr/local/Cellar/node/12.1.0/bin/node /usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/Users/default/Desktop/personal/default/node_modules/sqlite3/lib/binding/node-v72-darwin-x64/node_sqlite3.node --module_name=node_sqlite3 --module_path=/Users/default/Desktop/personal/default/node_modules/sqlite3/lib/binding/node-v72-darwin-x64 --napi_version=4 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v72' (1)
node-pre-gyp ERR! stack     at ChildProcess.<anonymous> (/Users/default/Desktop/personal/default/node_modules/node-pre-gyp/lib/util/compile.js:83:29)
node-pre-gyp ERR! stack     at ChildProcess.emit (events.js:196:13)
node-pre-gyp ERR! stack     at maybeClose (internal/child_process.js:1000:16)
node-pre-gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:267:5)
node-pre-gyp ERR! System Darwin 18.5.0
node-pre-gyp ERR! command "/usr/local/Cellar/node/12.1.0/bin/node" "/Users/default/Desktop/personal/default/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build"
node-pre-gyp ERR! cwd /Users/default/Desktop/personal/default/node_modules/sqlite3
node-pre-gyp ERR! node -v v12.1.0
node-pre-gyp ERR! node-pre-gyp -v v0.11.0
node-pre-gyp ERR! not ok 
Failed to execute '/usr/local/Cellar/node/12.1.0/bin/node /usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/Users/default/Desktop/personal/default/node_modules/sqlite3/lib/binding/node-v72-darwin-x64/node_sqlite3.node --module_name=node_sqlite3 --module_path=/Users/default/Desktop/personal/default/node_modules/sqlite3/lib/binding/node-v72-darwin-x64 --napi_version=4 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v72' (1)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] install: `node-pre-gyp install --fallback-to-build`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/default/.npm/_logs/2019-05-02T21_02_01_505Z-debug.log

3 Answers 3

10

From the Readme . The sqlite3 module works with Node.js v4.x, v6.x, v8.x, and v10.x. . You should downgrade to Node v10 until this module has certified support for Node v12.

EDIT: Per below comments, Node v11 and v12 are supported now: October 2020 - Update

"The sqlite3 module works with Node.js v4.x, v6.x, v8.x, v10.x, v11.x and v12.x" - Source - https://www.npmjs.com/package/sqlite3/v/4.1.1

Sign up to request clarification or add additional context in comments.

3 Comments

Yep, SQLite3 does not support Node v12 yet
Seems weird that you'd have to downgrade Node to use something this common. I guess that's why you don't use the latest Node version!
what should i do if i have node version 16 ?
1

From the version 4.1.1 https://github.com/mapbox/node-sqlite3/releases/tag/v4.1.1, the sqlite3 should support Node.JS v12 and v13.

So please take a look at the packages that depend on sqlite3 to install the updated version.

Comments

0

October 2020 - Update

"The sqlite3 module works with Node.js v4.x, v6.x, v8.x, v10.x, v11.x and v12.x" - Source - https://www.npmjs.com/package/sqlite3/v/4.1.1

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.