目录

gac-350 node development env set up

本文详细介绍基于gac-350 门禁的node windows 开发环境的搭建,以及用以该门禁远程编译调试node工程。

gac-350 smart-device-node 工程代码通过gitlab管理.

gac-350 smart-device-node 通过typescript 编码实现,ts通过解释成js后运行。

集成开发环境使用itellij,习惯vs的可以选择vs201x/vscode.

gac-350 门禁通过supervisor守护node 工程运行,程序入口通过supervisor配置文件到npm start 再到 packge.json 包管理的start命令。

supervisor->smart-device-node->npm start->packge.json->node node_modules/cross-env/dist/bin/cross-env.js DEBUG=info:app:*,error:app:* node app/App

install and compile

itellij

itellij 直接通过 ide itellij idea官方下载,直接双击安装,成功安装后破解参考IntelliJ IDEA 最新注册码

node

node 解释器和sdk通过nodejs.org,成功下载后双击默认安装。

run

成功安装itellij后通过New->Project->node->Node.js and NPM 导入代码到工程。

提示:初次下载工程需要手动解压根目录下在的node_modules.zip压缩包。

如果要在windows上面编译工程,需要添加 Run-> Edit Configurationss->+ npm

同时可配置远程机器运行直接配置到gac-350门禁上运行调试。

troubleshooting

编译失败

Error:(2, 21) TS2307: Cannot find module 'fs'.
Error:(6, 16) TS2503: Cannot find namespace 'NodeJS'.

本地运行提示 Cannot find cross-env.js

internal/modules/cjs/loader.js:584
    throw err;
    ^

Error: Cannot find module 'D:\MyProject\smart-device-node\node_modules\cross-env\dist\bin\cross-env.js'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:582:15)
    at Function.Module._load (internal/modules/cjs/loader.js:508:25)
    at Function.Module.runMain (internal/modules/cjs/loader.js:754:12)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)

如上文,已经反复提示,初次安装需要手动解压安装根目录下的node_modules.zip 压缩包。

远程调试提示Illegal instruction

/usr/bin/node --inspect=0.0.0.0:57309 --debug-brk app/App node_modules/cross-env/dist/bin/cross-env.js
bash: line 1: 11260 Illegal instruction     env "FORCE_COLOR"="true" "ELECTRON_NO_ATTACH_CONSOLE"="true" "npm_config_color"="always" "DEBUG_COLORS"="true" "MOCHA_COLORS"="1" "DEBUG"="info:app:*,error:app:* " "JETBRAINS_REMOTE_RUN"="1" "COLORTERM"="true" '/usr/bin/node' '--inspect=0.0.0.0:57309' '--debug-brk' 'app/App' 'node_modules/cross-env/dist/bin/cross-env.js'

暂时地,门禁版本过于7,不支持debug功能。

'--inspect=0.0.0.0:57546' 参数无效

https://nodejs.org/zh-cn/docs/guides/debugging-getting-started/

在版本 7 以及更早的版本使用 --debug 或 --debug-brk 开关启动调试时,Node.js 侦听由中断定义的调试命令,TCP 端口上的 V8 调试协议,默认为 5858。任何遵守此协议的调试客户端都可以连接并调试运行这个进程,下面有一些热门的说明。

http://mirrors.sohu.com/debian/pool/main/n/nodejs/

低版本node不支持itellij 调试,需要安装高版本的node->debian Jessie 版本太低不支持高版本node所以需要切换到sid、experimental 源更新libc和gcc->装了高版本node过后发现npm 不在了,通过apt-get install 重新安装了npm。->之后发现electron不能正常启动。