我的Nodejs应用程序在ubuntu中运行良好。当我尝试在Windows机器中部署它时,它显示以下错误。
=>node server.js
D:\home\site\wwwroot
D:\home\site\wwwroot\node_modules\ffi\node_modules\bindings\bindings.js:83
throw e ^
Error: %1 is not a valid Win32 application.
D:\home\site\wwwroot\node_modules\ffi\node_modules\ref\build\Release\binding.node
at Error (native)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at bindings
我删除了ffi模块并在windows机器上再次尝试了npm install ffi它也没有用。
=> npm install ffi
D:\home\site\wwwroot
npm WARN package.json @ No description
npm WARN package.json @ No repository field.
npm WARN package.json @ No README data
npm WARN package.json @ No license field.
gyp ERR! build error
gyp ERR! stack Error: `msbuild` failed with exit code: 1
gyp ERR! stack at ChildProcess.onExit (c:\Program Files (x86)\npm\2.11.2\node_modules\npm\node_modules\node-gyp\lib\build.js:269:23)
gyp ERR! stack at ChildProcess.emit (events.js:110:17)
gyp ERR! stack at Process.ChildProcess._handle.onexit (child_process.js:1074:12)
gyp ERR! System Windows_NT 6.2.9200
gyp ERR! command "node" "c:\\Program Files (x86)\\npm\\2.11.2\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
gyp ERR! cwd D:\home\site\wwwroot\node_modules\ffi
gyp ERR! node -v v0.12.6
gyp ERR! node-gyp -v v2.0.1
gyp ERR! not ok
npm ERR! Windows_NT 6.2.9200
您能否就此问题提出您的看法
答案 0 :(得分:7)
你不能在不同平台上移动已编译的插件(就像你不能将Linux可执行文件复制到Windows并希望能够执行它一样)。在将项目树复制到其他平台后,您需要在项目目录中npm rebuild
重新编译任何插件。
答案 1 :(得分:1)
节点模块ffi
是本机模块。此错误是由Azure WebApps的限制引起的,请参阅https://azure.microsoft.com/en-us/documentation/articles/nodejs-use-node-modules-azure-apps/的Native Modules
部分。医生说
" Azure网站不支持所有本机模块,可能会失败 编译具有非常特定先决条件的那些。"
因此,如果您必须将本机模块用于NodeJS应用程序,我建议使用Azure VM来支持编译本机模块。