gpt4 book ai didi

node.js - Heroku 找不到 `babel-core/register`

转载 作者:搜寻专家 更新时间:2023-10-31 22:39:11 25 4
gpt4 key购买 nike

我正在使用 NodeJS 构建一个小型 url-shortener 应用程序。我在 ES6 中编写代码,使用导入 Babel 的索引文件,然后导入我的服务器:

require('babel-core/register');
require('./server.js');

这在本地主机上工作得很好,我所有的 ES6 代码都工作正常。

但是,当我成功部署到 Heroku 时,我收到一个应用程序错误,在 heroku 日志中显示以下内容 --tail -a shortenthisurl:

2016-02-06T12:31:14.074071+00:00 heroku[slug-compiler]: Slug compilation started
2016-02-06T12:31:14.074080+00:00 heroku[slug-compiler]: Slug compilation finished
2016-02-06T12:31:13.936954+00:00 heroku[api]: Deploy f576f69 by rory88@gmail.com
2016-02-06T12:31:13.936991+00:00 heroku[api]: Release v17 created by rory88@gmail.com
2016-02-06T12:31:14.230327+00:00 heroku[web.1]: State changed from crashed to starting
2016-02-06T12:31:15.215417+00:00 heroku[web.1]: Starting process with command `node index.js`
2016-02-06T12:31:16.816525+00:00 app[web.1]: module.js:341
2016-02-06T12:31:16.816534+00:00 app[web.1]: throw err;
2016-02-06T12:31:16.816535+00:00 app[web.1]: ^
2016-02-06T12:31:16.816536+00:00 app[web.1]:
2016-02-06T12:31:16.816541+00:00 app[web.1]: Error: Cannot find module 'babel-core/register'
2016-02-06T12:31:16.816541+00:00 app[web.1]: at Function.Module._resolveFilename (module.js:339:15)
2016-02-06T12:31:16.816542+00:00 app[web.1]: at Function.Module._load (module.js:290:25)
2016-02-06T12:31:16.816543+00:00 app[web.1]: at Module.require (module.js:367:17)
2016-02-06T12:31:16.816544+00:00 app[web.1]: at require (internal/module.js:16:19)
2016-02-06T12:31:16.816544+00:00 app[web.1]: at Object.<anonymous> (/app/index.js:1:63)
2016-02-06T12:31:16.816545+00:00 app[web.1]: at Module._compile (module.js:413:34)
2016-02-06T12:31:16.816546+00:00 app[web.1]: at Object.Module._extensions..js (module.js:422:10)
2016-02-06T12:31:16.816546+00:00 app[web.1]: at Module.load (module.js:357:32)
2016-02-06T12:31:16.816547+00:00 app[web.1]: at Function.Module._load (module.js:314:12)
2016-02-06T12:31:16.816547+00:00 app[web.1]: at Function.Module.runMain (module.js:447:10)
2016-02-06T12:31:17.669897+00:00 heroku[web.1]: State changed from starting to crashed
2016-02-06T12:31:17.655186+00:00 heroku[web.1]: Process exited with status 1
2016-02-06T12:31:40.693975+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=shortenthisurl.herokuapp.com request_id=c2bffaba-4de6-4310-b535-4ff37ec637ad fwd="86.1.35.144" dyno= connect= service= status=503 bytes=

这是我的package.json:

{
"name": "shortenthisurl",
"version": "1.0.0",
"description": "",
"main": "server.js",
"scripts": {
"test": "mocha --compilers js:babel-register -w",
"start": "node server.js",
"babel-node": "babel-node --stage 0 --ignore='foo|bar|baz'",
"build": "babel -d lib"
},
"author": "",
"license": "ISC",
"dependencies": {
"babel": "^6.3.26",
"chai": "^3.5.0",
"express": "^4.13.4",
"lodash": "^4.2.1",
"mocha": "^2.4.5",
"mongoose": "^4.4.1",
"request": "^2.69.0"
},
"devDependencies": {
"babel-core": "^6.4.5",
"babel-preset-es2015": "^6.3.13",
"babel-register": "^6.4.3"
}
}

也许我没有正确导入 Babel。您对我如何让它发挥作用有什么建议吗?

这是 Github 上完整存储库的链接:https://github.com/alanbuchanan/shortenthisurl

最佳答案

模块不可用,因为它没有安装。 Heroku 仅安装 dependencies 中的包,因为这些是应用程序运行所必需的。

来自Heroku documentation :

Npm reads configuration from any environment variables beginning with NPM_CONFIG. We set production=true by default to install dependencies only.

您可以通过将 babel-core 模块从 devDependencies 移动到 dependencies 列表来解决这个问题,因为您需要模块进行编译ES6 脚本到 ES5。

关于node.js - Heroku 找不到 `babel-core/register`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35241323/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com