【问题标题】:Nodejs: Error starting web application in production environmentNodejs:在生产环境中启动 Web 应用程序时出错
【发布时间】:2019-08-20 19:23:10
【问题描述】:

当我尝试仅使用 Nodejs 启动我的 Web 应用程序时,我没有任何问题,我的 Web 应用程序工作正常。

但是当我尝试在我的笔记本电脑上模拟生产中的启动时,即静态页面将由 webpack 服务器提供,而来自 API 的数据将由 Nodejs 提供。我遇到了这个错误:

/home/josecarlos/Workspace/nodejs/basketmetrics3/node_modules/convert-source-map/index.js:61
  return SafeBuffer.Buffer.from(json, 'utf8').toString('base64');
                           ^

TypeError: Cannot read property 'from' of undefined
    at Converter.toBase64 (/home/josecarlos/Workspace/nodejs/basketmetrics3/node_modules/convert-source-map/index.js:61:28)
    at Converter.toComment (/home/josecarlos/Workspace/nodejs/basketmetrics3/node_modules/convert-source-map/index.js:65:21)
    at generateCode (/home/josecarlos/Workspace/nodejs/basketmetrics3/node_modules/@babel/core/lib/transformation/file/generate.js:78:76)
    at runSync (/home/josecarlos/Workspace/nodejs/basketmetrics3/node_modules/@babel/core/lib/transformation/index.js:50:51)
    at transformSync (/home/josecarlos/Workspace/nodejs/basketmetrics3/node_modules/@babel/core/lib/transform.js:43:38)
    at Object.transform (/home/josecarlos/Workspace/nodejs/basketmetrics3/node_modules/@babel/core/lib/transform.js:22:38)
    at compile (/home/josecarlos/Workspace/nodejs/basketmetrics3/node_modules/@babel/register/lib/node.js:73:20)
    at compileHook (/home/josecarlos/Workspace/nodejs/basketmetrics3/node_modules/@babel/register/lib/node.js:102:12)
    at Module._compile (/home/josecarlos/Workspace/nodejs/basketmetrics3/node_modules/pirates/lib/index.js:93:29)
    at Module._extensions..js (internal/modules/cjs/loader.js:827:10)

要开始我的项目,我使用这个命令 npm run start

这些是我的配置文件:

package.json

{
  "name": "basketmetrics3",
  "version": "1.0.0",
  "description": "Basketball advanced stats",
  "main": "server.js",
  "scripts": {
    "dev-webpack": "webpack-dev-server --hot --mode development",
    "clean": "rm -rf ./dist",
    "dev": "npm run clean && npm run compile-dev && cross-env NODE_ENV=development nodemon --exec babel-node src/server/server.js --ignore ./src/client",
    "compile-dev": "NODE_ENV=development webpack -d --config ./webpack.config.babel.js --progress",    
    "compile": "NODE_ENV=production webpack -p --config ./webpack.config.babel.js --progress",
    "start": "npm run clean && npm run compile && cross-env NODE_ENV=production babel-node src/server/server.js --ignore ./src/client"
  },
  "license": "ISC",
  "dependencies": {
    "@babel/polyfill": "^7.4.4",
    "@material-ui/core": "^3.9.3",
    "@material-ui/icons": "^3.0.2",
    "bootstrap": "^4.3.1",
    "cors": "^2.8.5",
    "create-react-app": "^3.0.1",
    "cross-env": "^5.2.0",
    "d3": "^5.9.7",
    "dotenv": "^7.0.0",
    "express": "^4.17.1",
    "express-graphql": "^0.7.1",
    "graphql": "^14.4.2",
    "jquery": "^3.4.1",
    "morgan": "^1.9.1",
    "mysql2": "^1.6.5",
    "popper.js": "^1.15.0",
    "react": "^16.8.6",
    "react-bootstrap": "^1.0.0-beta.10",
    "react-bootstrap-table-next": "^3.1.7",
    "react-bootstrap-table2-paginator": "^2.0.7",
    "react-dom": "^16.8.6",
    "react-multi-language": "^0.4.2",
    "react-router-dom": "^5.0.1",
    "react-simple-tooltip": "^2.6.1",
    "sequelize": "^4.44.2",
    "validator": "^10.11.0"
  },
  "devDependencies": {
    "@babel/cli": "^7.5.5",
    "@babel/core": "^7.5.5",
    "@babel/node": "^7.5.5",        
    "@babel/preset-env": "^7.5.5",
    "@babel/preset-react": "^7.0.0",
    "babel-loader": "^8.0.6",
    "babel-plugin-transform-class-properties": "^6.24.1",
    "babel-register": "^6.26.0",
    "css-loader": "^2.1.1",
    "file-loader": "^3.0.1",
    "html-webpack-plugin": "^3.2.0",
    "mini-css-extract-plugin": "^0.5.0",
    "nodemon": "^1.19.1",
    "path": "^0.12.7",
    "style-loader": "^0.23.1",
    "url-loader": "^1.1.2",
    "webpack": "^4.38.0",
    "webpack-cli": "^3.3.6",
    "webpack-dev-server": "^3.7.2"
  }
}

.babelrc

{
    "presets": [
        ["@babel/preset-env" , {"modules": "cjs"}], 
        "@babel/preset-react"
    ],
    "plugins": [
        "transform-class-properties"
    ],
    "ignore": [
        "./node_modules"
    ]
}

我一直在寻找有关我的问题的信息,我发现我必须将“ignore: [node_modules]”添加到我的 .babelrc 文件中。但是,在我的 .babelrc 文件中添加了这个条目之后,我的应用程序仍然无法工作:(

有没有其他方法可以用 node.js 忽略“node_modules”?如何忽略“node_modules”?如果这是我的错误的真正原因,当然。

我可以做些什么来解决我遇到的错误?

【问题讨论】:

    标签: node.js babeljs package.json


    【解决方案1】:

    我找到了解决问题的方法。更改启动脚本添加忽略“node_modules”就足够了。

    我在 package.json 中的“开始”脚本将是:

      "scripts": {
        "dev-webpack": "webpack-dev-server --hot --mode development",
        "clean": "rm -rf ./dist",
        "dev": "npm run clean && npm run compile-dev && cross-env NODE_ENV=development nodemon --exec babel-node src/server/server.js --ignore ./src/client",
        "compile-dev": "NODE_ENV=development webpack -d --config ./webpack.config.babel.js --progress",
        "compile": "NODE_ENV=production webpack -p --config ./webpack.config.babel.js --progress",
        "start": "npm run clean && npm run compile && cross-env NODE_ENV=production babel-node src/server/server.js --ignore ./node_modules"
      },
    

    【讨论】:

      猜你喜欢
      • 2013-03-06
      • 2011-10-25
      • 2016-12-03
      • 1970-01-01
      • 1970-01-01
      • 2013-03-20
      • 2017-12-18
      • 2011-06-15
      • 1970-01-01
      相关资源
      最近更新 更多