WEBPACK5错误:主要模块未找到:错误:无法解析“./src”。

6

您想使用webpack5分别构建Express和gql服务器相关文件,但在构建过程中出现了错误。

主要错误
模块未找到:错误:无法解析'/Users/leedonghee/Dropbox/Project/observer/Homepage/v2/server'路径下的'./src'

我的文件中没有使用./src路径。

目录


server(root)
├─ dist
├─ model(mongoose & gql)
│   ├─ schema.js
│   └─ main-sliders
│       ├─ model.js
│       ├─ resolver.js
│       └─ schema.graphql
├─ node_modules
├─ index.js
├─ webpack.config.js
├─ .babelrc
├─ .env
├─ package.json
├─ package-lock.json
└─ ...

package.json


{
  "name": "server",
  "version": "1.0.0",
  "description": "",
  "private": true,
  "scripts": {
    "dev:server": "NODE_ENV=development nodemon --exec babel-node index.js",
    "build": "webpack --mode production --progress",
    "start:server": "NODE_ENV=production node ./build/index.js"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "core-js": "^3.8.1",
    "cors": "^2.8.5",
    "dotenv": "^8.2.0",
    "express": "^4.17.1",
    "express-graphql": "^0.12.0",
    "graphql": "^15.4.0",
    "graphql-tools": "^7.0.2",
    "merge-graphql-schemas": "^1.7.8",
    "mongoose": "^5.11.7",
    "path-browserify": "^1.0.1",
    "regenerator-runtime": "^0.13.7"
  },
  "devDependencies": {
    "@babel/cli": "^7.12.10",
    "@babel/core": "^7.12.10",
    "@babel/node": "^7.12.10",
    "@babel/preset-env": "^7.12.11",
    "babel-loader": "^8.2.2",
    "clean-webpack-plugin": "^3.0.0",
    "nodemon": "^2.0.6",
    "webpack": "^5.10.3",
    "webpack-cli": "^4.2.0",
    "webpack-graphql-loader": "^1.0.2"
  }
}

webpack.config.js


const { CleanWebpackPlugin } = require("clean-webpack-plugin");
const path = require("path");

module.export = {
  entry: "index.js",
  mode: "production",
  target: "node",
  resolve: {
    modules: ["node_modules"],
    extensions: [".js", ".json"],
    fallback: { path: require.resolve("path-browserify") },
  },
  output: {
    publicPath: "/",
    path: path.resolve(__dirname, "build"),
    filename: "index.js",
  },
  module: {
    rules: [
      {
        test: /\.js$/,
        exclude: /node_modules/,
        use: {
          loader: "babel-loader",
        },
      },
      {
        test: /\.graphql?$/,
        use: [
          {
            loader: "webpack-graphql-loader",
            options: {
              minify: true,
            },
          },
        ],
      },
    ],
  },
  plugins: [new CleanWebpackPlugin()],
};


index.js


import express from "express";
import dotenv from "dotenv";
import cors from "cors";
import mongoose from "mongoose";
const { graphqlHTTP } = require("express-graphql");
import schema from "./models/schema";
import "core-js/stable";
import "regenerator-runtime/runtime";

const app = express();
// env --------------------------------------------
dotenv.config();
const { PROD_PORT, DEV_PORT, DB_NAME, DB_URI, NODE_ENV } = process.env;
const port = NODE_ENV === "development" ? DEV_PORT : PROD_PORT;

// DB Setting --------------------------------------------
mongoose.Promise = global.Promise; // db서버 비동기처리
mongoose.connect(DB_URI, {
  useNewUrlParser: true,
  useFindAndModify: false,
  useCreateIndex: true,
  useUnifiedTopology: true,
});
mongoose.connection.once("open", () =>
  console.log(`  Connected to "${DB_NAME}" MongoDB server.`)
);
mongoose.connection.on("error", (error) => console.error(` Error: :`, error));

// Get React Build File --------------------------------------------
const homepage = require("path").join(__dirname, "..", "homepage", "build");
app.use(express.static(homepage));
app.get("/", (req, res) => {
  res.sendFile("index.html", { homepage });
});

app.use(
  "/graphql",
  cors(),
  graphqlHTTP({
    schema: schema,
    graphiql: NODE_ENV === "development" ? true : false,
  })
);

app.listen(port, () => {
  console.log(
    `\n Server running on http://localhost:${port}\n${
      NODE_ENV === "development" ? "⚙️  Development" : "  Production"
    } mode`
  );
});

.babelrc


{
    "presets": [
        ["@babel/preset-env" ,
            {
              "useBuiltIns" : "usage" ,
              "corejs" : 3
            }]
    ]
}


你的问题不是应该使用"module.exports"而不是"module.export"吗? - Michal-gmail
1个回答

1
我遇到了同样的问题。"Module not found: Error: Can't resolve './src' in"。我也是webpack新手,不知道'src'是否是必需的目录。然而,我在我的项目文件夹中创建了'src'目录,其中包含package.json和webpack.config.js,并将我的index.js移动到'src'目录中。 此外,如果您查看基本设置配置的文档,它们都假定'src'为index.js的源文件夹。可能有一些高级主题可以摆脱'src'。尽管我还没有达到那个程度。 编辑:看起来您不需要'src'目录。您可以在webpack.config.js文件中简单地定义自己的入口点

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接