0

我正在尝试将我的应用程序部署到 Heroku,但不断收到此错误,我找不到解决方案。我的数据库已经在服务器上,可以毫无问题地连接。

-----> 在 Heroku-20 堆栈上构建 -----> 使用 buildpack:heroku/nodejs -----> 检测到 Node.js 应用

-----> 创建运行环境

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

----->安装二进制engines.node(package.json):16.1.0engines.npm(package.json):未指定(使用默认)engines.yarn(package.json):未指定(使用默认)

   Resolving node version 16.1.0...
   Downloading and installing node 16.1.0...
   Using default npm version: 7.11.2
   Resolving yarn version 1.22.x...
   Downloading and installing yarn (1.22.10)
   Installed yarn 1.22.10
   

-----> 安装依赖项安装节点模块(yarn.lock)yarn install v1.22.10 [1/4] 解决包... [2/4] 获取包... [3/4] 链接依赖项.. . [4/4] 构建新包...错误/tmp/build_513662c2/node_modules/msnodesqlv8:命令失败。退出代码:1 命令:prebuild-install || node-gyp rebuild 参数:目录:/tmp/build_513662c2/node_modules/msnodesqlv8 输出:(node:801) [DEP0150] DeprecationWarning:不推荐设置 process.config。将来,该属性将是只读的。(利用node --trace-deprecation ...显示警告的创建位置) make: Entering directory '/tmp/build_513662c2/node_modules/msnodesqlv8/build' CXX(target) Release/obj.target/sqlserverv8/src/ConnectionHandles.o 在来自 ../src/ 的文件中ConnectionHandles.h:22,来自 ../src/ConnectionHandles.cpp:1: ../src/stdafx.h:37:14:致命错误:sqltypes.h:没有这样的文件或目录 37 | #include <sqltypes.h> | ^~~~~~~~~~~~ 编译终止。make: *** [sqlserverv8.target.mk:164: Release/obj.target/sqlserverv8/src/ConnectionHandles.o] 错误 1 ​​make: Leaving directory '/tmp/build_513662c2/node_modules/msnodesqlv8/build' gyp ERR!构建错误 gyp ERR!堆栈错误:make退出代码失败:2 gyp ERR!ChildProcess.onExit (/tmp/build_513662c2/.heroku/node/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23) 的堆栈 gyp 错误!ChildProcess.emit (node:events:365:28) 的堆栈 gyp ERR!堆栈在 Process.ChildProcess._handle.onexit (node:internal/child_process:290:12) gyp ERR!系统 Linux 4.4.0-1088-aws gyp ERR!命令“/tmp/build_513662c2/.heroku/node/bin/node”“/tmp/build_513662c2/.heroku/node/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js”“重建”吉普错误!cwd /tmp/build_513662c2/node_modules/msnodesqlv8 gyp 错误!节点 -v v16.1.0 gyp 错误!节点-gyp -v v7.1.2 gyp 错误!不好的信息 访问https://yarnpkg.com/en/docs/cli/install以获取有关此命令的文档。-----> 构建失败

   We're sorry this build is failing! You can troubleshoot common issues here:
   https://devcenter.heroku.com/articles/troubleshooting-node-deploys
   
   If you're stuck, please submit a ticket so we can help:
   https://help.heroku.com/
   
   Love,
   Heroku
     !     Push rejected, failed to compile Node.js app.  !     Push failed

我认为它与“msnodesqlv8”有关,因为当我从 package.json 中删除它时,一切似乎都工作正常并且可以部署应用程序。任何帮助,将不胜感激。

4

1 回答 1

0

Linux 需要为 SQL Server 安装 Microsoft 驱动程序。

请参阅此处的说明:https ://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server -ver15

于 2021-06-29T23:32:41.837 回答