Экспресс JS с предоставлением Webpack не может найти ошибку модуля - PullRequest
1 голос
/ 01 апреля 2019

Привет, я новичок в технологиях внешнего интерфейса, поэтому у меня возник вопрос по поводу webpack и express js. Я создаю приложение, используя реагировать, веб-пакет, узел и экспресс-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"
    })
]
};

когда я собираю код в папке сборки, он создает dist / app.js, main.js, index.html всякий раз, когда я пытаюсь запустить app.js, он говорит:

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 / * в папке уменьшенная форма, которую я предполагаю, что это не делает. Не могли бы вы, если я что-то упустил и мое понимание верно или нет?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...