ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

简单概括什么是 node-gyp ?

2020-02-03 19:03:34  阅读:553  来源: 互联网

标签:node spawn Juwan 概括 args info gyp


https://blog.csdn.net/adley_app/article/details/95165584

GYP是一种构建自动化工具。

node-gyp:node下的gyp。

为什么要有node-gyp?

npm 为了方便干脆就直接源码分发,用户装的时候再现场编译。

因为node程序中需要调用一些其他语言编写的 工具 甚至是dll,需要先编译一下,否则就会有跨平台的问题,例如在windows上运行的软件copy到mac上就不能用了,但是如果源码支持,编译一下,在mac上还是可以用的。node-gyp在较新的Node版本中都是自带的(平台相关),用来编译原生C++模块。

配置是否正常

win + r cmd 控制台得到如下信息即可,注意安装 MSBuild (2015)工具链。

C:\Users\Juwan>node-gyp list
gyp info it worked if it ends with ok
gyp info using node-gyp@6.1.0
gyp info using node@10.13.0 | win32 | ia32
10.13.0
gyp info ok

如何使用

node-gyp rebuild 在 Windows 下可以理解为调用 msbuid 进行该文件夹下的 sln 解决方案的 build ,例如我们在使用 serialport 的时候,经常要对 C++ 的代码进行本机编译得到 DLL 。

如下例子:

PS C:\Users\Juwan\Documents\GitHub\electron-vue-admin> cd node_modules\@serialport\bindings
PS C:\Users\Juwan\Documents\GitHub\electron-vue-admin\node_modules\@serialport\bindings> node-gyp rebuild
gyp info it worked if it ends with ok     
gyp info using node-gyp@6.1.0
gyp info using node@10.13.0 | win32 | ia32
gyp info find Python using Python version 2.7.17 found at "C:\Python27\python.exe"
gyp info find VS using VS2019 (16.2.29306.81) found at:
gyp info find VS "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise"
gyp info find VS run with --verbose for detailed information
gyp info spawn C:\Python27\python.exe
gyp info spawn args [ 'C:\\Users\\Juwan\\AppData\\Roaming\\nvm\\v10.13.0\\node_modules\\node-gyp\\gyp\\gyp_main.py',
gyp info spawn args   'binding.gyp',
gyp info spawn args   '-f',
gyp info spawn args   'msvs',
gyp info spawn args   '-I',
gyp info spawn args   'C:\\Users\\Juwan\\Documents\\GitHub\\electron-vue-admin\\node_modules\\@serialport\\bindings\\build\\config.gypi',
gyp info spawn args   '-I',
gyp info spawn args   'C:\\Users\\Juwan\\AppData\\Roaming\\nvm\\v10.13.0\\node_modules\\node-gyp\\addon.gypi',
gyp info spawn args   '-I',
gyp info spawn args   'C:\\Users\\Juwan\\AppData\\Local\\node-gyp\\Cache\\10.13.0\\include\\node\\common.gypi',
gyp info spawn args   '-Dlibrary=shared_library',
gyp info spawn args   '-Dvisibility=default',
gyp info spawn args   '-Dnode_root_dir=C:\\Users\\Juwan\\AppData\\Local\\node-gyp\\Cache\\10.13.0',
gyp info spawn args   '-Dnode_gyp_dir=C:\\Users\\Juwan\\AppData\\Roaming\\nvm\\v10.13.0\\node_modules\\node-gyp',
gyp info spawn args   '-Dnode_lib_file=C:\\\\Users\\\\Juwan\\\\AppData\\\\Local\\\\node-gyp\\\\Cache\\\\10.13.0\\\\<(target_arch)\\\\node.lib',
gyp info spawn args   '-Dmodule_root_dir=C:\\Users\\Juwan\\Documents\\GitHub\\electron-vue-admin\\node_modules\\@serialport\\bindings',
gyp info spawn args   '-Dnode_engine=v8',
gyp info spawn args   '--depth=.',
gyp info spawn args   '--no-parallel',
gyp info spawn args   '--generator-output',
gyp info spawn args   'C:\\Users\\Juwan\\Documents\\GitHub\\electron-vue-admin\\node_modules\\@serialport\\bindings\\build',
gyp info spawn args   '-Goutput_dir=.' ]
gyp info spawn C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\MSBuild.exe
gyp info spawn args [ 'build/binding.sln',
gyp info spawn args   '/clp:Verbosity=minimal',
gyp info spawn args   '/nologo',
gyp info spawn args   '/p:Configuration=Release;Platform=Win32' ]
在此解决方案中一次生成一个项目。若要启用并行生成,请添加“-m”开关。
  serialport.cpp
  serialport_win.cpp
  win_delay_load_hook.cc
    正在创建库 C:\Users\Juwan\Documents\GitHub\electron-vue-admin\node_modules\@serialport\bindings\build\Release\bindings.lib 和对象 C:\Users\Juwan\Documents\GitHub\electron-vue-admin\node_
  modules\@serialport\bindings\build\Release\bindings.exp
  正在生成代码
  Previous IPDB not found, fall back to full compilation.
  All 478 functions were compiled because no usable IPDB/IOBJ from previous compilation was found.
  已完成代码的生成
  bindings.vcxproj -> C:\Users\Juwan\Documents\GitHub\electron-vue-admin\node_modules\@serialport\bindings\build\Release\\bindings.node
gyp info ok
PS C:\Users\Juwan\Documents\GitHub\electron-vue-admin\node_modules\@serialport\bindings> 

常见错误

关联 Error: A dynamic link library (DLL) initialization routine failed.

标签:node,spawn,Juwan,概括,args,info,gyp
来源: https://www.cnblogs.com/juwan/p/12256746.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有