Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果您使用Babel和ES6,如何将应用程序部署到Heroku?_Javascript_Node.js_Heroku_Ecmascript 6_Babeljs - Fatal编程技术网

Javascript 如果您使用Babel和ES6,如何将应用程序部署到Heroku?

Javascript 如果您使用Babel和ES6,如何将应用程序部署到Heroku?,javascript,node.js,heroku,ecmascript-6,babeljs,Javascript,Node.js,Heroku,Ecmascript 6,Babeljs,我在尝试将应用程序部署到Heroku时伤了脑筋。 问题是我正在使用ES6和巴贝尔 我找到了很多关于这方面的文章,但没有一篇帮助我解决这个问题 即使我在本地构建应用程序并尝试运行它,我也会遇到另一个问题——构建文件夹中指向模块的路径与Babel build编译之前的路径相同 这是一种普通的行为吗?因为我以前从未面对过这种情况 它应该启动graphqlapi-heroku_path/GraphQL 我会感谢你的帮助 package.json { "name": "cocoon-api", "

我在尝试将应用程序部署到Heroku时伤了脑筋。 问题是我正在使用ES6和巴贝尔

我找到了很多关于这方面的文章,但没有一篇帮助我解决这个问题

即使我在本地构建应用程序并尝试运行它,我也会遇到另一个问题——构建文件夹中指向模块的路径与Babel build编译之前的路径相同 这是一种普通的行为吗?因为我以前从未面对过这种情况

它应该启动graphqlapi-heroku_path/GraphQL

我会感谢你的帮助

package.json

{
  "name": "cocoon-api",
  "version": "1.0.0",
  "description": "",
  "private": true,
  "main": "src/server.js",
  "scripts": {
    "dev": "babel-watch src/server.js",
    "clean": "rm -rf build && mkdir build",
    "build-babel": "babel -d ./build ./src -s",
    "build": "npm run clean && npm run build-babel",
    "start": "npm run build && node ./build/server.js",
    "heroku-postbuild": "npm install"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "apollo-server-express": "^2.9.14",
    "bcryptjs": "^2.4.3",
    "body-parser": "^1.19.0",
    "cors": "^2.8.5",
    "express": "^4.17.1",
    "graphql": "^14.5.8",
    "graphql-depth-limit": "^1.1.0",
    "graphql-iso-date": "^3.6.1",
    "graphql-middleware": "^4.0.2",
    "graphql-shield": "^7.0.6",
    "graphql-tag": "^2.10.1",
    "graphql-toolkit": "^0.7.5",
    "graphql-tools": "^4.0.6",
    "jsonwebtoken": "^8.5.1",
    "lodash": "^4.17.15",
    "merge-graphql-schemas": "^1.7.4",
    "mongoose": "^5.8.3",
    "winston": "^3.2.1"
  },
  "devDependencies": {
    "@babel/cli": "^7.7.7",
    "@babel/core": "^7.7.7",
    "@babel/node": "^7.7.7",
    "@babel/preset-env": "^7.7.7",
    "babel-plugin-import-graphql": "^2.7.0",
    "babel-watch": "^7.0.0",
    "dotenv": "^8.2.0",
    "nodemon": "^2.0.2"
  }
}
部署时出错

$ git push heroku master
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 4 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 344 bytes | 344.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Node.js app detected
remote:
remote: -----> Creating runtime environment
remote:
remote:        NPM_CONFIG_LOGLEVEL=error
remote:        NPM_CONFIG_PRODUCTION=false
remote:        NODE_ENV=production
remote:        NODE_MODULES_CACHE=true
remote:        NODE_VERBOSE=false
remote:
remote: -----> Installing binaries
remote:        engines.node (package.json):  unspecified
remote:        engines.npm (package.json):   unspecified (use default)
remote:
remote:        Resolving node version 12.x...
remote:        Downloading and installing node 12.16.1...
remote:        Using default npm version: 6.13.4
remote:
remote: -----> Restoring cache
remote:        - node_modules
remote:
remote: -----> Installing dependencies
remote:        Installing node modules (package.json + package-lock)
remote:        audited 7150 packages in 8.044s
remote:
remote:        13 packages are looking for funding
remote:          run `npm fund` for details
remote:
remote:        found 143 low severity vulnerabilities
remote:          run `npm audit fix` to fix them, or `npm audit` for details
remote:
remote: -----> Build
remote:        Detected both "build" and "heroku-postbuild" scripts
remote:        Running heroku-postbuild
remote:
remote:        > cocoon-api@1.0.0 heroku-postbuild /tmp/build_900f276e6b5aac117b7994386823a0a9
remote:        > npm install
remote:
remote:        audited 7150 packages in 8.008s
remote:
remote:        13 packages are looking for funding
remote:          run `npm fund` for details
remote:
remote:        found 143 low severity vulnerabilities
remote:          run `npm audit fix` to fix them, or `npm audit` for details
remote:
remote: -----> Caching build
remote:        - node_modules
remote:
remote: -----> Pruning devDependencies
remote:        Skipping because NPM_CONFIG_PRODUCTION is 'false'
remote:
remote: -----> Build succeeded!
remote: -----> Discovering process types
remote:        Procfile declares types -> web
remote:
remote: -----> Compressing...
remote:        Done: 31.5M
remote: -----> Launching...
remote:        Released v11
remote:        https://aqueous-springs-82481.herokuapp.com/ deployed to Heroku
remote:
remote: Verifying deploy... done.
To https://git.heroku.com/aqueous-springs-82481.git
   5cd7f10..4abee83  master -> master
路径错误

Successfully compiled 29 files with Babel.
internal/modules/cjs/loader.js:613
    throw err;
    ^

Error: Cannot find module '../environment'
Require stack:
- C:\Users\Валерий\Documents\Projects\cocoon-api\build\server.js

结构

程序文件

web: npm run start

您的server.js文件似乎与/environment位于同一目录中

但是,您指定的从server.js到/environment的路径前面应该只有一个句点。将../environment更改为../environment

编辑

项目似乎只需要一个模块路径解析器,巴贝尔提供了一个:


通过在构建过程中添加适当的配置,您可以简单地将正确的路径放置到构建中进行部署

这里的奥秘在于transpiler这么认为。但是我的server.js文件在src目录中。编译后需要手动更改的所有路径是,如果Babel配置正确。如果你在github上有你的项目,我可以看看。我今天不上班,明白吗。我也会尝试部署哦,是的,在构建和部署之后手动编辑文件路径不是一个好策略。试试这个:[现在我感觉到了