带有Webpack的Express JS无法找到模块错误

时间:2019-04-01 06:34:03

标签: node.js express webpack

嗨,我是前端技术的新手,所以我对webpack和express js有疑问。我正在使用react,webpack,node和express js构建应用程序。 app.js如下所示

app.js

const express = require('express');
    const app = express();
    var path = require('path');
    app.use(express.static(__dirname + '/'));
    app.get('/', (req, res) => { // new
        res.sendFile(__dirname + "/index.html");
    });
    app.listen(3000, () => console.log('listening on port 3000'));

package.json如下所示

     "version": "1.0.0",
      "main": "app.js",
      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 0",
        "build": "webpack --mode production",
        "start": "nohup webpack-dev-server --mode development --open &",
        "prepublishOnly": "cp -r configuration/* build/"
      },
      "repository": {
        "type": "git",
        "url": "ssh://git.amazon.com/pkg/SPSWebApplication"
      },
      "keywords": [],
      "author": "",
      "license": "ISC",
      "devDependencies": {
        "@babel/core": "^7.3.4",
        "@babel/preset-env": "^7.3.4",
        "@babel/preset-react": "^7.0.0",
        "babel-loader": "^8.0.5",
        "express": "^4.16.4",
        "html-loader": "^0.5.5",
        "html-webpack-plugin": "^3.2.0",
        "react-dom": "^16.8.4",
        "webpack": "^4.29.6",
        "webpack-cli": "^3.3.0",
        "webpack-dev-middleware": "^3.6.1",
        "webpack-dev-server": "^3.2.1"
      },
      "dependencies": {
        "@stencil-react/core": "*",
        "@stencil-react/theme-default": "*",
        "webpack": "^4.29.6",
        "webpack-cli": "^3.3.0",
        "react": "^16.8.4",
        "webpack-dev-server": "^3.2.1",
        "html-webpack-plugin": "^3.2.0"
      },
      "description": ""
    }

webpack.config.js

const HtmlWebPackPlugin = require("html-webpack-plugin");
module.exports = {
module: {
    rules: [
        {
            test: /\.(js|jsx)$/,
            exclude: /node_modules/,
            use: {
                loader: "babel-loader"
            }

        },
        {
            test: /\.html$/,
            use: [
                {
                    loader: "html-loader",
                    options: { minimize: true }
                }
            ]
        }
    ]
},
resolve: { // this allows to import 'Foo.jsx'
    extensions: ['.jsx', '.js', '.json']
},
plugins: [
    new HtmlWebPackPlugin({
        template: "./src/index.html",
        filename: "./index.html"
    })
]
};

当我在build文件夹中构建代码时,每当我尝试运行app.js时,它都会创建dist / app.js,main.js,index.html

Error: Cannot find module 'express'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:649:15)
at Function.Module._load (internal/modules/cjs/loader.js:575:25)
at Module.require (internal/modules/cjs/loader.js:705:19)
at require (internal/modules/cjs/helpers.js:14:16)

我想通过dist / app.js在生产环境中运行我的应用程序,但是当我执行“ node app.js”时,它给了我这个依赖关系问题,我假设webpack应该将dist / *文件夹中的express依赖关系拉到我假设它没有做的最小化形式。如果我错过了任何东西,而我的理解正确与否,可以请您吗?

0 个答案:

没有答案