首页 > 解决方案 > nodejs Heroku 构建超时(它曾经工作)

问题描述

我正在尝试部署我拥有的 nodejs 应用程序

git push heroku master

由于超时,构建失败,这是构建日志

-----> Node.js app detected

-----> Creating runtime environment

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

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

       Resolving node version 10.x...
       Downloading and installing node 10.15.3...
       Using default npm version: 6.4.1

-----> Restoring cache
       Cached directories were not restored due to a change in version of node, npm, yarn or stack
       Module installation may take longer for this build

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

       > node-expat@2.3.17 install /tmp/build_c3cb8f26de145fdc95dbb7c74ca4abea/node_modules/node-expat
       > node-gyp rebuild

       make: Entering directory '/tmp/build_c3cb8f26de145fdc95dbb7c74ca4abea/node_modules/node-expat/build'
         CC(target) Release/obj.target/expat/deps/libexpat/lib/xmlparse.o
       ../deps/libexpat/lib/xmlparse.c: In function ‘gather_time_entropy’:
       ../deps/libexpat/lib/xmlparse.c:780:7: warning: variable ‘gettimeofday_res’ set but not used [-Wunused-but-set-variable]
          int gettimeofday_res;
              ^
         CC(target) Release/obj.target/expat/deps/libexpat/lib/xmltok.o
         CC(target) Release/obj.target/expat/deps/libexpat/lib/xmlrole.o
         AR(target) Release/obj.target/deps/libexpat/libexpat.a
         COPY Release/libexpat.a
         CXX(target) Release/obj.target/node_expat/node-expat.o
       ../node-expat.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE Parser::Parse(Nan::NAN_METHOD_ARGS_TYPE)’:
       ../node-expat.cc:103:47: warning: ‘v8::Local<v8::Object> v8::Value::ToObject() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
                Local<Object> obj = info[0]->ToObject();
                                                      ^
       In file included from /app/.node-gyp/10.15.3/include/node/node.h:63:0,
                        from ../node_modules/nan/nan.h:52,
                        from ../node-expat.cc:1:
       /app/.node-gyp/10.15.3/include/node/v8.h:10046:15: note: declared here
        Local<Object> Value::ToObject() const {
                      ^
       ../node-expat.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE Parser::SetUnknownEncoding(Nan::NAN_METHOD_ARGS_TYPE)’:
       ../node-expat.cc:470:59: warning: ‘int32_t v8::Value::Int32Value() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
                  parser->xmlEncodingInfo->map[i] = m->Int32Value();
                                                                  ^
       In file included from /app/.node-gyp/10.15.3/include/node/v8.h:26:0,
                        from /app/.node-gyp/10.15.3/include/node/node.h:63,
                        from ../node_modules/nan/nan.h:52,
                        from ../node-expat.cc:1:
       /app/.node-gyp/10.15.3/include/node/v8.h:2478:46: note: declared here
          V8_DEPRECATED("Use maybe version", int32_t Int32Value() const);
                                                     ^
       /app/.node-gyp/10.15.3/include/node/v8config.h:324:3: note: in definition of macro ‘V8_DEPRECATED’
          declarator __attribute__((deprecated(message)))
          ^
         SOLINK_MODULE(target) Release/obj.target/node_expat.node
         COPY Release/node_expat.node
       make: Leaving directory '/tmp/build_c3cb8f26de145fdc95dbb7c74ca4abea/node_modules/node-expat/build'

       > iconv@2.3.1 install /tmp/build_c3cb8f26de145fdc95dbb7c74ca4abea/node_modules/iconv
       > node-gyp rebuild

       make: Entering directory '/tmp/build_c3cb8f26de145fdc95dbb7c74ca4abea/node_modules/iconv/build'
         CXX(target) Release/obj.target/iconv/src/binding.o
         CC(target) Release/obj.target/iconv/deps/libiconv/lib/iconv.o
         CC(target) Release/obj.target/iconv/support/localcharset.o
         SOLINK_MODULE(target) Release/obj.target/iconv.node
         COPY Release/iconv.node
       make: Leaving directory '/tmp/build_c3cb8f26de145fdc95dbb7c74ca4abea/node_modules/iconv/build'

       > execSync@1.0.2 install /tmp/build_c3cb8f26de145fdc95dbb7c74ca4abea/node_modules/execSync
       > node install.js

       [execsync v1.0.2] Attempting to compile native extensions.
       [execSync v1.0.2]
           Native code compile failed!!
       added 760 packages from 579 contributors and audited 3610 packages in 38.646s
       found 111 vulnerabilities (46 low, 49 moderate, 16 high)
         run `npm audit fix` to fix them, or `npm audit` for details

-----> Build
       Running build

       > udemy-nodejs-angular2@1.0.0 build /tmp/build_c3cb8f26de145fdc95dbb7c74ca4abea
       > del-cli public/js/app && webpack --config webpack.config.dev.js --progress --profile --watch

  0% compiling       
       Webpack is watching the files…

 10% building modules 0/1 modules 1 active ...dc95dbb7c74ca4abea/assets/app/main.ts       
       [at-loader] Using typescript@2.6.2 from typescript and "tsconfig.json" from /tmp/build_c3cb8f26de145fdc95dbb7c74ca4abea/tsconfig.json.

18812ms building modules
77ms sealing
0ms optimizing
0ms basic module optimization
66ms module optimization
27ms advanced module optimization
0ms basic chunk optimization
0ms chunk optimization
0ms advanced chunk optimization
1ms module and chunk tree optimization
48ms module reviving
6ms module order optimization
9ms module id optimization
10ms chunk reviving
1ms chunk order optimization
45ms chunk id optimization
116ms hashing
1ms module assets processing
1746ms chunk assets processing
6ms additional chunk assets processing
0ms recording
0ms additional asset processing
1ms chunk asset optimization
494ms asset optimization
206ms emitting
       Hash: bdcd2d9b22529d57e9ea
       Version: webpack 2.7.0
       Time: 21715ms
            Asset     Size  Chunks                    Chunk Names
       0.chunk.js   672 kB       0  [emitted]  [big]  
       1.chunk.js  45.2 kB       1  [emitted]         
        bundle.js  29.8 MB       2  [emitted]  [big]  app
          [0] ./~/@angular/core/esm5/core.js 542 kB {2} [built]
              [] -> factory:568ms building:8004ms dependencies:14ms = 8586ms
          [4] ./~/tslib/tslib.es6.js 8.03 kB {2} [built]
              [] -> factory:1256ms building:1025ms = 2281ms
         [46] ./~/@angular/platform-browser/esm5/platform-browser.js 159 kB {2} [built]
              [] -> factory:570ms building:4258ms dependencies:5ms = 4833ms
        [785] ./~/@angular/platform-browser-dynamic/esm5/platform-browser-dynamic.js 24.9 kB {2} [built]
              [] -> factory:96ms building:89ms dependencies:464ms = 649ms
        [786] ./assets/app/app.module.ts 4.19 kB {2} [built]
              [] -> factory:11ms building:71ms = 82ms
        [787] ./assets/app/polyfills.ts 163 bytes {2} [built]
              [] -> factory:9ms building:9ms = 18ms
        [788] ./~/hammerjs/hammer.js 73.8 kB {2} [built]
              [] -> factory:95ms building:643ms = 738ms
        [820] ./~/@angular/platform-browser/esm5/animations.js 28 kB {2} [built]
              [] -> factory:571ms building:292ms dependencies:499ms = 1362ms
        [821] ./assets/app/app.component.ts 1.58 kB {2} [built]
              [] -> factory:27ms building:112ms dependencies:431ms = 570ms
        [822] ./assets/app/app.routing.ts 3.79 kB {2} [built]
              [] -> factory:28ms building:176ms dependencies:12ms = 216ms
        [823] ./assets/app/errors/error.component.ts 2.12 kB {2} [built]
              [] -> factory:32ms building:343ms dependencies:195ms = 570ms
        [825] ./assets/app/header.component.ts 1.53 kB {2} [built]
              [] -> factory:28ms building:129ms dependencies:413ms = 570ms
        [826] ./assets/app/main.ts 338 bytes {2} [built]
               factory:30ms building:7552ms = 7582ms
        [830] ./assets/app/messages/message.module.ts 1.78 kB {2} [built]
              [] -> factory:34ms building:372ms dependencies:1123ms = 1529ms
        [832] ./assets/app/setup/job.module.ts 4.54 kB {2} [built]
              [] -> factory:36ms building:471ms dependencies:1277ms = 1784ms
           + 1707 hidden modules
-----> Timed out running buildpack Node.js
 !     Timed out compiling app (60 minutes)
 !     See https://devcenter.heroku.com/articles/slug-compiler#time-limit

我看到有一个声明说,Module installation may take longer for this build但不幸的是它正在超时。这里令人沮丧的部分是它曾经可以工作,我不确定为什么现在不行。有没有办法增加超时限制或以另一种方式解决这个问题?

标签: node.jsheroku

解决方案


这可能是由于高内存使用导致 webpack 构建需要时间。您可以尝试通过传递来调整节点进程允许的内存NODE_OPTIONS="--max_old_space_size=2560"。默认大小为 2.5GB,您可以尝试将其增加到合适的值。可能有帮助!


推荐阅读