Node.js:如何为生产环境准备代码

时间:2019-08-08 11:46:55

标签: javascript node.js reactjs webpack

我是新手,正在使用Nodejs和React 进行开发。

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

  

ReferenceError: document is not defined

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

为生产环境创建版本。

我一直在寻找有关此问题的信息,这似乎是由于我没有用浏览器将Web应用程序化。但是,我不知道如何正确执行此操作,也不知道正确执行此操作的步骤。

请,有人可以帮助我并指示我所有正确的步骤来为生产环境构建正确的版本吗?

编辑我:

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

enter image description here

2 个答案:

答案 0 :(得分:1)

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

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

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

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

答案 1 :(得分:0)

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