【问题标题】:Nodejs: How to prepare code for production environmentNodejs:如何为生产环境准备代码
【发布时间】:2019-08-08 11:46:55
【问题描述】:

我是使用 Nodejs 和 React 开发的初学者

现在,我的 Web 应用程序的第一个版本在开发环境中可以正常工作,但我正在尝试为生产环境构建一个版本,但出现此错误

ReferenceError: 文档未定义

我的 package.json 的脚本是:

  "scripts": {
    "dev-webpack": "webpack-dev-server --hot --mode development",
    "clean": "rm -rf ./dist",
    "dev": "npm run build-dev && cross-env NODE_ENV=development nodemon --exec babel-node src/server/server.js --ignore ./src/client",
    "build-dev": "npm run clean && npm run compile-dev",
    "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",
    "build": "npm run clean && npm run compile",
    "start": "npm run build && node ./dist/assets/js/bundle.js"
  },

我尝试使用命令npm run start为生产环境创建版本

我一直在寻找有关该问题的信息,似乎是因为我没有 Browserify 我的 Web 应用程序。但是,我不知道如何正确执行此操作,也不知道正确执行此操作的步骤。

我正在寻找为生产环境构建正确版本所需的步骤列表。

编辑我:

这些是使用“build”脚本生成的静态文件:

【问题讨论】:

  • 因为 react 应用会构建需要静态服务的文件。您的命令 node bundle.js 将无法像在没有文档的 node env 中那样工作
  • 我该如何解决这个问题?
  • npm run build 将生成 dist 文件夹。只需在 dist 文件夹中运行一个静态服务器

标签: javascript node.js reactjs webpack


【解决方案1】:

React 应用程序旨在在浏览器中运行

当您运行dev-webpack 时,您正在运行一个HTTP 服务器并将浏览器指向它。

当您运行 build 时,您正在创建一个静态 JavaScript 文件。您需要将其部署到 Web 服务器(连同关联的 HTML 文档),然后将浏览器指向 HTML 文档。

您当前正在尝试使用 Node 而不是浏览器执行 bundle.js

【讨论】:

  • 好的。所以,如果我不明白,我必须从“开始”脚本节点中删除 ./dist/assets/js/bundle.js 因为使用“构建”脚本生成的静态文件将提供给 Web 服务器.我错了吗?
【解决方案2】:

您需要提供您的index.html 文件。您可以使用serve 来托管 HTML 文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-24
    • 2011-05-22
    • 2013-08-24
    • 1970-01-01
    相关资源
    最近更新 更多