首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将node.js应用程序部署到heroku时出错

将node.js应用程序部署到heroku时出错
EN

Stack Overflow用户
提问于 2016-01-04 14:39:51
回答 1查看 349关注 0票数 0

我正在尝试将我的node.js应用程序部署到heroku。我在git push heroku master上发现了这个错误

代码语言:javascript
复制
> on-headers@1.0.1 test /tmp/build_4d6fe429e576b4e42425b713c87264e9/node_modules/response-time/node_modules/on-headers
   > mocha --reporter spec --bail --check-leaks test/

   /tmp/build_4d6fe429e576b4e42425b713c87264e9/node_modules/mocha/lib/utils.js:626
   throw new Error("cannot resolve path (or pattern) '" + path + "'");
   ^

   Error: cannot resolve path (or pattern) 'test/'
   at Object.lookupFiles (/tmp/build_4d6fe429e576b4e42425b713c87264e9/node_modules/mocha/lib/utils.js:626:15)
   at /tmp/build_4d6fe429e576b4e42425b713c87264e9/node_modules/mocha/bin/_mocha:316:30
   at Array.forEach (native)
   at Object.<anonymous> (/tmp/build_4d6fe429e576b4e42425b713c87264e9/node_modules/mocha/bin/_mocha:315:6)
   at Module._compile (module.js:435:26)
   at Object.Module._extensions..js (module.js:442:10)
   at Module.load (module.js:356:32)
   at Function.Module._load (module.js:311:12)
   at Function.Module.runMain (module.js:467:10)
   at startup (node.js:136:18)
   at node.js:963:3

   > node-statsd@0.1.1 test /tmp/build_4d6fe429e576b4e42425b713c87264e9/node_modules/soluto-monitor/node_modules/node-statsd
   > mocha -R spec

   /tmp/build_4d6fe429e576b4e42425b713c87264e9/node_modules/mocha/lib/utils.js:626
   throw new Error("cannot resolve path (or pattern) '" + path + "'");
   ^

   Error: cannot resolve path (or pattern) 'test'
   at Object.lookupFiles (/tmp/build_4d6fe429e576b4e42425b713c87264e9/node_modules/mocha/lib/utils.js:626:15)
   at /tmp/build_4d6fe429e576b4e42425b713c87264e9/node_modules/mocha/bin/_mocha:316:30
   at Array.forEach (native)
   at Object.<anonymous> (/tmp/build_4d6fe429e576b4e42425b713c87264e9/node_modules/mocha/bin/_mocha:315:6)
   at Module._compile (module.js:435:26)
   at Object.Module._extensions..js (module.js:442:10)
   at Module.load (module.js:356:32)
   at Function.Module._load (module.js:311:12)
   at Function.Module.runMain (module.js:467:10)
   at startup (node.js:136:18)
   at node.js:963:3
...

..and为每个node_modules子目录设置错误Error: cannot resolve path (or pattern) 'test/'

我的package.json看起来有点像这样:

代码语言:javascript
复制
{
  "name": "my-module",
  "version": "0.1.0",
  "description": "My Module",
 "dependencies": {
    "azure-storage": "0.6.0",
    "bluebird": "3.0.6",
    "body-parser": "1.14.1",
    "cors": "2.7.1",
    "dotenv": "^1.2.0",
    "express": "3.3.3",
    "moment": "2.10.6",
    "request-promise": "1.0.2",
    "rx": "4.0.7",
    "shisell": "0.0.2",
    "striptags": "2.0.4",
    "winston": "2.1.1"
  },
  "devDependencies": {
    "chai": "^3.4.1",
    "chai-as-promised": "^5.1.0",
    "mocha": "^2.3.4",
    "mock-require": "^1.2.1",
    "sinon": "^1.17.2",
    "sinon-chai": "^2.8.0",
    "supertest": "^1.1.0"
  },
  "main": "server.js",
  "engines": {
    "node": "4.2.3"
  },
  "scripts": {
    "test": "mocha"
  }
}

似乎摩卡正在试图从node_modules内部运行,在每个依赖项中运行。通过在一个mocha目录中运行node_modules,我成功地在本地再现了错误。

我尝试从我的test中删除package.json脚本,但仍然得到了相同的错误。

我对heroku的部署很陌生。据我所知,一旦我把它推到heroku,那么heroku就会运行npm安装,如果有测试脚本,它就会运行。但我不明白是什么原因导致它尝试在node_modules子目录中运行mocha (即使我没有在package.json中指定测试脚本,为什么会出现这种情况)。

有什么想法吗?

附注:当我在我的机器上在本地运行时,这种情况不会发生。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-10 12:15:08

原来我在heroku上设置了一个环境变量集:NPM_CONFIG_NPAT=true,它会导致npm在所有安装上运行测试,如下所述:https://docs.npmjs.com/misc/config#npat

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34593571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档