gemini-testing / png-img

Lite libpng wrapper for node.js
MIT License
29 stars 13 forks source link

Publish prebuilt artifacts to prevent building png-img on every installation #44

Open isqua opened 5 years ago

isqua commented 5 years ago

png-img compiles every time on installing. There is a way to prebuild packages for different distros and to download prebuild during installation instead of compilation. Compare iltorb installation and png-img:

time npm i iltorb

> iltorb@2.4.2 install /Users/isqua/Projects/tests/node_modules/iltorb
> node ./scripts/install.js || node-gyp rebuild

info looking for cached prebuild @ /Users/isqua/.npm/_prebuilds/c0e100-iltorb-v2.4.2-node-v57-darwin-x64.tar.gz
http request GET https://github.com/MayhemYDG/iltorb/releases/download/v2.4.2/iltorb-v2.4.2-node-v57-darwin-x64.tar.gz
http 200 https://github.com/MayhemYDG/iltorb/releases/download/v2.4.2/iltorb-v2.4.2-node-v57-darwin-x64.tar.gz
info downloading to @ /Users/isqua/.npm/_prebuilds/c0e100-iltorb-v2.4.2-node-v57-darwin-x64.tar.gz.19967-36ed0a1562a27.tmp
info renaming to @ /Users/isqua/.npm/_prebuilds/c0e100-iltorb-v2.4.2-node-v57-darwin-x64.tar.gz
info unpacking @ /Users/isqua/.npm/_prebuilds/c0e100-iltorb-v2.4.2-node-v57-darwin-x64.tar.gz
info unpack resolved to /Users/isqua/Projects/tests/node_modules/iltorb/build/bindings/iltorb.node
info unpack required /Users/isqua/Projects/tests/node_modules/iltorb/build/bindings/iltorb.node successfully
info install Successfully installed iltorb binary!
npm WARN saveError ENOENT: no such file or directory, open '/Users/isqua/Projects/tests/package.json'
npm WARN enoent ENOENT: no such file or directory, open '/Users/isqua/Projects/tests/package.json'
npm WARN tests No description
npm WARN tests No repository field.
npm WARN tests No README data
npm WARN tests No license field.

+ iltorb@2.4.2
updated 1 package and audited 500 packages in 3.001s
found 0 vulnerabilities

npm i iltorb  2.09s user 0.32s system 67% cpu 3.551 total

png-img:

time npm i png-img

> png-img@2.2.0 install /Users/isqua/Projects/tests/node_modules/png-img
> node-gyp rebuild

  CC(target) Release/obj.target/libpng/third_party/libpng/png.o
  CC(target) Release/obj.target/libpng/third_party/libpng/pngerror.o
  CC(target) Release/obj.target/libpng/third_party/libpng/pngget.o
  CC(target) Release/obj.target/libpng/third_party/libpng/pngmem.o
  CC(target) Release/obj.target/libpng/third_party/libpng/pngpread.o
  CC(target) Release/obj.target/libpng/third_party/libpng/pngread.o
  CC(target) Release/obj.target/libpng/third_party/libpng/pngrio.o
  CC(target) Release/obj.target/libpng/third_party/libpng/pngrtran.o
  CC(target) Release/obj.target/libpng/third_party/libpng/pngrutil.o
  CC(target) Release/obj.target/libpng/third_party/libpng/pngset.o
  CC(target) Release/obj.target/libpng/third_party/libpng/pngtest.o
  CC(target) Release/obj.target/libpng/third_party/libpng/pngtrans.o
  CC(target) Release/obj.target/libpng/third_party/libpng/pngwio.o
  CC(target) Release/obj.target/libpng/third_party/libpng/pngwrite.o
  CC(target) Release/obj.target/libpng/third_party/libpng/pngwtran.o
  CC(target) Release/obj.target/libpng/third_party/libpng/pngwutil.o
  LIBTOOL-STATIC Release/png.a
  CC(target) Release/obj.target/zlib/third_party/zlib/adler32.o
  CC(target) Release/obj.target/zlib/third_party/zlib/compress.o
  CC(target) Release/obj.target/zlib/third_party/zlib/crc32.o
  CC(target) Release/obj.target/zlib/third_party/zlib/deflate.o
  CC(target) Release/obj.target/zlib/third_party/zlib/gzclose.o
  CC(target) Release/obj.target/zlib/third_party/zlib/gzlib.o
  CC(target) Release/obj.target/zlib/third_party/zlib/gzread.o
  CC(target) Release/obj.target/zlib/third_party/zlib/gzwrite.o
  CC(target) Release/obj.target/zlib/third_party/zlib/infback.o
  CC(target) Release/obj.target/zlib/third_party/zlib/inffast.o
  CC(target) Release/obj.target/zlib/third_party/zlib/inflate.o
../third_party/zlib/inflate.c:1507:61: warning: shifting a negative signed value is undefined [-Wshift-negative-value]
    if (strm == Z_NULL || strm->state == Z_NULL) return -1L << 16;
                                                        ~~~ ^
1 warning generated.
  CC(target) Release/obj.target/zlib/third_party/zlib/inftrees.o
  CC(target) Release/obj.target/zlib/third_party/zlib/trees.o
  CC(target) Release/obj.target/zlib/third_party/zlib/uncompr.o
  CC(target) Release/obj.target/zlib/third_party/zlib/zutil.o
  LIBTOOL-STATIC Release/zlib.a
  CXX(target) Release/obj.target/png_img/src/init.o
  CXX(target) Release/obj.target/png_img/src/PngImgAdapter.o
  CXX(target) Release/obj.target/png_img/src/PngImg.o
  SOLINK_MODULE(target) Release/png_img.node
npm WARN saveError ENOENT: no such file or directory, open '/Users/isqua/Projects/tests/package.json'
npm WARN enoent ENOENT: no such file or directory, open '/Users/isqua/Projects/tests/package.json'
npm WARN tests No description
npm WARN tests No repository field.
npm WARN tests No README data
npm WARN tests No license field.

+ png-img@2.2.0
added 1 package from 4 contributors and audited 502 packages in 15.821s
found 0 vulnerabilities

npm i png-img  11.39s user 3.41s system 90% cpu 16.358 total

It may be done with https://github.com/prebuild/prebuild

ShadyMind commented 5 years ago

+