VincentChanX / shadowsocks-over-websocket

免费使用 Heroku 部署 shadowsocks
GNU General Public License v3.0
562 stars 1.53k forks source link

构建失败,nodejs环境问题? #31

Open vvx1024 opened 4 years ago

vvx1024 commented 4 years ago

-----> Node.js app detected

-----> Creating runtime environment

   NPM_CONFIG_LOGLEVEL=error
   NODE_ENV=production
   NODE_MODULES_CACHE=true
   NODE_VERBOSE=false

-----> Installing binaries engines.node (package.json): unspecified engines.npm (package.json): unspecified (use default)

   Resolving node version 12.x...
   Downloading and installing node 12.15.0...
   Using default npm version: 6.13.4

-----> Installing dependencies Installing node modules (package.json)

   > bufferutil@3.0.5 install /tmp/build_949ae318edeafd672dc35c0c22cd1db6/node_modules/bufferutil
   > prebuild-install || node-gyp rebuild

   make: Entering directory '/tmp/build_949ae318edeafd672dc35c0c22cd1db6/node_modules/bufferutil/build'
     CXX(target) Release/obj.target/bufferutil/src/bufferutil.o
   In file included from ../../nan/nan_converters.h:67:0,
                    from ../../nan/nan.h:202,
                    from ../src/bufferutil.cc:7:
   ../../nan/nan_converters_43_inl.h: In static member function ‘static Nan::imp::ToFactoryBase<v8::Boolean>::return_t Nan::imp::ToFactory<v8::Boolean>::convert(v8::Local<v8::Value>)’:
   ../../nan/nan_converters_43_inl.h:18:51: warning: ‘v8::MaybeLocal<v8::Boolean> v8::Value::ToBoolean(v8::Local<v8::Context>) const’ is deprecated: ToBoolean can never throw. Use Local version. [-Wdeprecated-declarations]
          val->To ## TYPE(isolate->GetCurrentContext())                            \
                                                      ^
   ../../nan/nan_converters_43_inl.h:22:1: note: in expansion of macro ‘X’
    X(Boolean)
    ^
   In file included from /app/.cache/node-gyp/12.15.0/include/node/v8-internal.h:14:0,
                    from /app/.cache/node-gyp/12.15.0/include/node/v8.h:25,
                    from /app/.cache/node-gyp/12.15.0/include/node/node.h:63,
                    from ../../nan/nan.h:51,
                    from ../src/bufferutil.cc:7:
   /app/.cache/node-gyp/12.15.0/include/node/v8.h:2568:59: note: declared here
                    V8_WARN_UNUSED_RESULT MaybeLocal<Boolean> ToBoolean(
                                                              ^
   /app/.cache/node-gyp/12.15.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
      declarator __attribute__((deprecated(message)))
      ^~~~~~~~~~
   In file included from ../../nan/nan_converters.h:67:0,
                    from ../../nan/nan.h:202,
                    from ../src/bufferutil.cc:7:
   ../../nan/nan_converters_43_inl.h: In static member function ‘static Nan::imp::ValueFactoryBase<bool>::return_t Nan::imp::ToFactory<bool>::convert(v8::Local<v8::Value>)’:
   ../../nan/nan_converters_43_inl.h:37:57: warning: ‘v8::Maybe<bool> v8::Value::BooleanValue(v8::Local<v8::Context>) const’ is deprecated: BooleanValue can never throw. Use Isolate version. [-Wdeprecated-declarations]
      return val->NAME ## Value(isolate->GetCurrentContext());                     \
                                                            ^
   ../../nan/nan_converters_43_inl.h:40:1: note: in expansion of macro ‘X’
    X(bool, Boolean)
    ^
   In file included from /app/.cache/node-gyp/12.15.0/include/node/v8-internal.h:14:0,
                    from /app/.cache/node-gyp/12.15.0/include/node/v8.h:25,
                    from /app/.cache/node-gyp/12.15.0/include/node/node.h:63,
                    from ../../nan/nan.h:51,
                    from ../src/bufferutil.cc:7:
   /app/.cache/node-gyp/12.15.0/include/node/v8.h:2606:51: note: declared here
                    V8_WARN_UNUSED_RESULT Maybe<bool> BooleanValue(
                                                      ^
   /app/.cache/node-gyp/12.15.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
      declarator __attribute__((deprecated(message)))
      ^~~~~~~~~~
   In file included from ../../nan/nan_new.h:189:0,
                    from ../../nan/nan.h:203,
                    from ../src/bufferutil.cc:7:
   ../../nan/nan_implementation_12_inl.h: In static member function ‘static Nan::imp::FactoryBase<v8::Function>::return_t Nan::imp::Factory<v8::Function>::New(Nan::FunctionCallback, v8::Local<v8::Value>)’:
   ../../nan/nan_implementation_12_inl.h:105:32: error: no matching function for call to ‘v8::Function::New(v8::Isolate*&, void (&)(const v8::FunctionCallbackInfo<v8::Value>&), v8::Local<v8::Object>&)’
                              , obj));
                                   ^
   In file included from /app/.cache/node-gyp/12.15.0/include/node/node.h:63:0,
                    from ../../nan/nan.h:51,
                    from ../src/bufferutil.cc:7:
   /app/.cache/node-gyp/12.15.0/include/node/v8.h:4170:31: note: candidate: static v8::MaybeLocal<v8::Function> v8::Function::New(v8::Local<v8::Context>, v8::FunctionCallback, v8::Local<v8::Value>, int, v8::ConstructorBehavior, v8::SideEffectType)
      static MaybeLocal<Function> New(
                                  ^~~
   /app/.cache/node-gyp/12.15.0/include/node/v8.h:4170:31: note:   no known conversion for argument 1 from ‘v8::Isolate*’ to ‘v8::Local<v8::Context>’
   In file included from ../../nan/nan_new.h:189:0,
                    from ../../nan/nan.h:203,
                    from ../src/bufferutil.cc:7:
   ../../nan/nan_implementation_12_inl.h: In static member function ‘static Nan::imp::FactoryBase<v8::StringObject>::return_t Nan::imp::Factory<v8::StringObject>::New(v8::Local<v8::String>)’:
   ../../nan/nan_implementation_12_inl.h:337:37: error: no matching function for call to ‘v8::StringObject::New(v8::Local<v8::String>&)’
      return v8::StringObject::New(value).As<v8::StringObject>();
                                        ^
   In file included from /app/.cache/node-gyp/12.15.0/include/node/node.h:63:0,
                    from ../../nan/nan.h:51,
                    from ../src/bufferutil.cc:7:
   /app/.cache/node-gyp/12.15.0/include/node/v8.h:5426:23: note: candidate: static v8::Local<v8::Value> v8::StringObject::New(v8::Isolate*, v8::Local<v8::String>)
      static Local<Value> New(Isolate* isolate, Local<String> value);
                          ^~~
   /app/.cache/node-gyp/12.15.0/include/node/v8.h:5426:23: note:   candidate expects 2 arguments, 1 provided
   In file included from ../../nan/nan_new.h:189:0,
                    from ../../nan/nan.h:203,
                    from ../src/bufferutil.cc:7:
   ../../nan/nan_implementation_12_inl.h:337:58: error: expected primary-expression before ‘>’ token
      return v8::StringObject::New(value).As<v8::StringObject>();
                                                             ^
   ../../nan/nan_implementation_12_inl.h:337:60: error: expected primary-expression before ‘)’ token
      return v8::StringObject::New(value).As<v8::StringObject>();
                                                               ^
   In file included from ../src/bufferutil.cc:7:0:
   ../../nan/nan.h: In constructor ‘Nan::Utf8String::Utf8String(v8::Local<v8::Value>)’:
   ../../nan/nan.h:1034:53: error: no matching function for call to ‘v8::Value::ToString()’
          v8::Local<v8::String> string = from->ToString();
                                                        ^
   In file included from /app/.cache/node-gyp/12.15.0/include/node/node.h:63:0,
                    from ../../nan/nan.h:51,
                    from ../src/bufferutil.cc:7:
   /app/.cache/node-gyp/12.15.0/include/node/v8.h:2572:44: note: candidate: v8::MaybeLocal<v8::String> v8::Value::ToString(v8::Local<v8::Context>) const
      V8_WARN_UNUSED_RESULT MaybeLocal<String> ToString(
                                               ^~~~~~~~
   /app/.cache/node-gyp/12.15.0/include/node/v8.h:2572:44: note:   candidate expects 1 argument, 0 provided
   In file included from /app/.cache/node-gyp/12.15.0/include/node/v8-internal.h:14:0,
                    from /app/.cache/node-gyp/12.15.0/include/node/v8.h:25,
                    from /app/.cache/node-gyp/12.15.0/include/node/node.h:63,
                    from ../../nan/nan.h:51,
                    from ../src/bufferutil.cc:7:
   /app/.cache/node-gyp/12.15.0/include/node/v8.h:2588:31: note: candidate: v8::Local<v8::String> v8::Value::ToString(v8::Isolate*) const
                    Local<String> ToString(Isolate* isolate) const);
                                  ^
   /app/.cache/node-gyp/12.15.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
      declarator __attribute__((deprecated(message)))
      ^~~~~~~~~~
   /app/.cache/node-gyp/12.15.0/include/node/v8.h:2588:31: note:   candidate expects 1 argument, 0 provided
                    Local<String> ToString(Isolate* isolate) const);
                                  ^
   /app/.cache/node-gyp/12.15.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
      declarator __attribute__((deprecated(message)))
      ^~~~~~~~~~
   In file included from ../src/bufferutil.cc:7:0:
   ../../nan/nan.h:1044:74: error: no matching function for call to ‘v8::String::WriteUtf8(char*&, int, int, const int&)’
            length_ = string->WriteUtf8(str_, static_cast<int>(len), 0, flags);
                                                                             ^
   In file included from /app/.cache/node-gyp/12.15.0/include/node/node.h:63:0,
                    from ../../nan/nan.h:51,
                    from ../src/bufferutil.cc:7:
   /app/.cache/node-gyp/12.15.0/include/node/v8.h:2782:7: note: candidate: int v8::String::WriteUtf8(v8::Isolate*, char*, int, int*, int) const
      int WriteUtf8(Isolate* isolate, char* buffer, int length = -1,
          ^~~~~~~~~
   /app/.cache/node-gyp/12.15.0/include/node/v8.h:2782:7: note:   no known conversion for argument 1 from ‘char*’ to ‘v8::Isolate*’
   In file included from ../src/bufferutil.cc:7:0:
   ../../nan/nan.h: In member function ‘void Nan::AsyncWorker::SaveToPersistent(const char*, const v8::Local<v8::Value>&)’:
   ../../nan/nan.h:1818:64: warning: ‘bool v8::Object::Set(v8::Local<v8::Value>, v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
        New(persistentHandle)->Set(New(key).ToLocalChecked(), value);
                                                                   ^
   In file included from /app/.cache/node-gyp/12.15.0/include/node/v8-internal.h:14:0,
                    from /app/.cache/node-gyp/12.15.0/include/node/v8.h:25,
                    from /app/.cache/node-gyp/12.15.0/include/node/node.h:63,
                    from ../../nan/nan.h:51,
                    from ../src/bufferutil.cc:7:
   /app/.cache/node-gyp/12.15.0/include/node/v8.h:3403:22: note: declared here
                    bool Set(Local<Value> key, Local<Value> value));
                         ^
   /app/.cache/node-gyp/12.15.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
      declarator __attribute__((deprecated(message)))
      ^~~~~~~~~~
   In file included from ../src/bufferutil.cc:7:0:
   ../../nan/nan.h: In member function ‘void Nan::AsyncWorker::SaveToPersistent(const v8::Local<v8::String>&, const v8::Local<v8::Value>&)’:
   ../../nan/nan.h:1824:42: warning: ‘bool v8::Object::Set(v8::Local<v8::Value>, v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
        New(persistentHandle)->Set(key, value);
                                             ^
   In file included from /app/.cache/node-gyp/12.15.0/include/node/v8-internal.h:14:0,
                    from /app/.cache/node-gyp/12.15.0/include/node/v8.h:25,
                    from /app/.cache/node-gyp/12.15.0/include/node/node.h:63,
                    from ../../nan/nan.h:51,
                    from ../src/bufferutil.cc:7:
   /app/.cache/node-gyp/12.15.0/include/node/v8.h:3403:22: note: declared here
                    bool Set(Local<Value> key, Local<Value> value));
                         ^
   /app/.cache/node-gyp/12.15.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
      declarator __attribute__((deprecated(message)))
      ^~~~~~~~~~
   In file included from ../src/bufferutil.cc:7:0:
   ../../nan/nan.h: In member function ‘void Nan::AsyncWorker::SaveToPersistent(uint32_t, const v8::Local<v8::Value>&)’:
   ../../nan/nan.h:1830:44: warning: ‘bool v8::Object::Set(uint32_t, v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
        New(persistentHandle)->Set(index, value);
                                               ^
   In file included from /app/.cache/node-gyp/12.15.0/include/node/v8-internal.h:14:0,
                    from /app/.cache/node-gyp/12.15.0/include/node/v8.h:25,
                    from /app/.cache/node-gyp/12.15.0/include/node/node.h:63,
                    from ../../nan/nan.h:51,
                    from ../src/bufferutil.cc:7:
   /app/.cache/node-gyp/12.15.0/include/node/v8.h:3412:22: note: declared here
                    bool Set(uint32_t index, Local<Value> value));
                         ^
   /app/.cache/node-gyp/12.15.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
      declarator __attribute__((deprecated(message)))
      ^~~~~~~~~~
   In file included from ../src/bufferutil.cc:7:0:
   ../../nan/nan.h: In member function ‘v8::Local<v8::Value> Nan::AsyncWorker::GetFromPersistent(const char*) const’:
   ../../nan/nan.h:1836:61: warning: ‘v8::Local<v8::Value> v8::Object::Get(v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
            New(persistentHandle)->Get(New(key).ToLocalChecked()));
                                                                ^
   In file included from /app/.cache/node-gyp/12.15.0/include/node/v8-internal.h:14:0,
                    from /app/.cache/node-gyp/12.15.0/include/node/v8.h:25,
                    from /app/.cache/node-gyp/12.15.0/include/node/node.h:63,
                    from ../../nan/nan.h:51,
                    from ../src/bufferutil.cc:7:
   /app/.cache/node-gyp/12.15.0/include/node/v8.h:3457:51: note: declared here
      V8_DEPRECATED("Use maybe version", Local<Value> Get(Local<Value> key));
                                                      ^
   /app/.cache/node-gyp/12.15.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
      declarator __attribute__((deprecated(message)))
      ^~~~~~~~~~
   In file included from ../src/bufferutil.cc:7:0:
   ../../nan/nan.h: In member function ‘v8::Local<v8::Value> Nan::AsyncWorker::GetFromPersistent(const v8::Local<v8::String>&) const’:
   ../../nan/nan.h:1842:55: warning: ‘v8::Local<v8::Value> v8::Object::Get(v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
        return scope.Escape(New(persistentHandle)->Get(key));
                                                          ^
   In file included from /app/.cache/node-gyp/12.15.0/include/node/v8-internal.h:14:0,
                    from /app/.cache/node-gyp/12.15.0/include/node/v8.h:25,
                    from /app/.cache/node-gyp/12.15.0/include/node/node.h:63,
                    from ../../nan/nan.h:51,
                    from ../src/bufferutil.cc:7:
   /app/.cache/node-gyp/12.15.0/include/node/v8.h:3457:51: note: declared here
      V8_DEPRECATED("Use maybe version", Local<Value> Get(Local<Value> key));
                                                      ^
   /app/.cache/node-gyp/12.15.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
      declarator __attribute__((deprecated(message)))
      ^~~~~~~~~~
   In file included from ../src/bufferutil.cc:7:0:
   ../../nan/nan.h: In member function ‘v8::Local<v8::Value> Nan::AsyncWorker::GetFromPersistent(uint32_t) const’:
   ../../nan/nan.h:1847:57: warning: ‘v8::Local<v8::Value> v8::Object::Get(uint32_t)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
        return scope.Escape(New(persistentHandle)->Get(index));
                                                            ^
   In file included from /app/.cache/node-gyp/12.15.0/include/node/v8-internal.h:14:0,
                    from /app/.cache/node-gyp/12.15.0/include/node/v8.h:25,
                    from /app/.cache/node-gyp/12.15.0/include/node/node.h:63,
                    from ../../nan/nan.h:51,
                    from ../src/bufferutil.cc:7:
   /app/.cache/node-gyp/12.15.0/include/node/v8.h:3461:51: note: declared here
      V8_DEPRECATED("Use maybe version", Local<Value> Get(uint32_t index));
                                                      ^
   /app/.cache/node-gyp/12.15.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
      declarator __attribute__((deprecated(message)))
      ^~~~~~~~~~
   In file included from /usr/include/c++/7/cassert:44:0,
                    from /app/.cache/node-gyp/12.15.0/include/node/node_object_wrap.h:26,
                    from ../../nan/nan.h:53,
                    from ../src/bufferutil.cc:7:
   ../../nan/nan_object_wrap.h: In destructor ‘virtual Nan::ObjectWrap::~ObjectWrap()’:
   ../../nan/nan_object_wrap.h:24:25: error: ‘class Nan::Persistent<v8::Object>’ has no member named ‘IsNearDeath’
        assert(persistent().IsNearDeath());
                            ^
   In file included from ../../nan/nan.h:2657:0,
                    from ../src/bufferutil.cc:7:
   ../../nan/nan_object_wrap.h: In member function ‘void Nan::ObjectWrap::MakeWeak()’:
   ../../nan/nan_object_wrap.h:67:34: warning: ‘void v8::PersistentBase<T>::MarkIndependent() [with T = v8::Object]’ 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();
                                     ^
   In file included from /app/.cache/node-gyp/12.15.0/include/node/v8-internal.h:14:0,
                    from /app/.cache/node-gyp/12.15.0/include/node/v8.h:25,
                    from /app/.cache/node-gyp/12.15.0/include/node/node.h:63,
                    from ../../nan/nan.h:51,
                    from ../src/bufferutil.cc:7:
   /app/.cache/node-gyp/12.15.0/include/node/v8.h:567:22: note: declared here
          V8_INLINE void MarkIndependent());
                         ^
   /app/.cache/node-gyp/12.15.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
      declarator __attribute__((deprecated(message)))
      ^~~~~~~~~~
   In file included from /usr/include/c++/7/cassert:44:0,
                    from /app/.cache/node-gyp/12.15.0/include/node/node_object_wrap.h:26,
                    from ../../nan/nan.h:53,
                    from ../src/bufferutil.cc:7:
   ../../nan/nan_object_wrap.h: In static member function ‘static void Nan::ObjectWrap::WeakCallback(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’:
   ../../nan/nan_object_wrap.h:124:26: error: ‘class Nan::Persistent<v8::Object>’ has no member named ‘IsNearDeath’
        assert(wrap->handle_.IsNearDeath());
                             ^
   ../src/bufferutil.cc: In function ‘Nan::NAN_METHOD_RETURN_TYPE mask(Nan::NAN_METHOD_ARGS_TYPE)’:
   ../src/bufferutil.cc:12:64: error: no matching function for call to ‘v8::Value::Int32Value()’
      char* to = node::Buffer::Data(info[2]) + info[3]->Int32Value();
                                                                   ^
   In file included from /app/.cache/node-gyp/12.15.0/include/node/node.h:63:0,
                    from ../../nan/nan.h:51,
                    from ../src/bufferutil.cc:7:
   /app/.cache/node-gyp/12.15.0/include/node/v8.h:2613:40: note: candidate: v8::Maybe<int> v8::Value::Int32Value(v8::Local<v8::Context>) const
      V8_WARN_UNUSED_RESULT Maybe<int32_t> Int32Value(Local<Context> context) const;
                                           ^~~~~~~~~~
   /app/.cache/node-gyp/12.15.0/include/node/v8.h:2613:40: note:   candidate expects 1 argument, 0 provided
   ../src/bufferutil.cc:13:39: error: no matching function for call to ‘v8::Value::Int32Value()’
      size_t length = info[4]->Int32Value();
                                          ^
   In file included from /app/.cache/node-gyp/12.15.0/include/node/node.h:63:0,
                    from ../../nan/nan.h:51,
                    from ../src/bufferutil.cc:7:
   /app/.cache/node-gyp/12.15.0/include/node/v8.h:2613:40: note: candidate: v8::Maybe<int> v8::Value::Int32Value(v8::Local<v8::Context>) const
      V8_WARN_UNUSED_RESULT Maybe<int32_t> Int32Value(Local<Context> context) const;
                                           ^~~~~~~~~~
   /app/.cache/node-gyp/12.15.0/include/node/v8.h:2613:40: note:   candidate expects 1 argument, 0 provided
   bufferutil.target.mk:109: recipe for target 'Release/obj.target/bufferutil/src/bufferutil.o' failed
   make: *** [Release/obj.target/bufferutil/src/bufferutil.o] Error 1
   make: Leaving directory '/tmp/build_949ae318edeafd672dc35c0c22cd1db6/node_modules/bufferutil/build'
   gyp ERR! build error 
   gyp ERR! stack Error: `make` failed with exit code: 2
   gyp ERR! stack     at ChildProcess.onExit (/tmp/build_949ae318edeafd672dc35c0c22cd1db6/.heroku/node/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
   gyp ERR! stack     at ChildProcess.emit (events.js:223:5)
   gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
   gyp ERR! System Linux 4.4.0-1057-aws
   gyp ERR! command "/tmp/build_949ae318edeafd672dc35c0c22cd1db6/.heroku/node/bin/node" "/tmp/build_949ae318edeafd672dc35c0c22cd1db6/.heroku/node/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
   gyp ERR! cwd /tmp/build_949ae318edeafd672dc35c0c22cd1db6/node_modules/bufferutil
   gyp ERR! node -v v12.15.0
   gyp ERR! node-gyp -v v5.0.5
   gyp ERR! not ok 
   npm ERR! code ELIFECYCLE
   npm ERR! errno 1
   npm ERR! bufferutil@3.0.5 install: `prebuild-install || node-gyp rebuild`
   npm ERR! Exit status 1
   npm ERR! 
   npm ERR! Failed at the bufferutil@3.0.5 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!     /tmp/npmcache.raheP/_logs/2020-02-06T09_24_13_865Z-debug.log

-----> Build failed

   We're sorry this build is failing! You can troubleshoot common issues here:
   https://devcenter.heroku.com/articles/troubleshooting-node-deploys

   Some possible problems:

   - Node version not specified in package.json
     https://devcenter.heroku.com/articles/nodejs-support#specifying-a-node-js-version

   Love,
   Heroku

! Push rejected, failed to compile Node.js app. ! Push failed

zouchao commented 4 years ago

"engines": { "node": "10.x" },

这个写在哪里?

shakilofficial0 commented 4 years ago

still facing same problam

angsheng commented 3 years ago

"engines": { "node": "10.x" },

这个写在哪里?

写在 package.json 内

NBSOD commented 2 years ago

package.json 增加

"engines": { "node": "10.x" },

这个写在哪里?

写在 package.json 内部署成功,感谢大佬