【问题标题】:Cannot find module 'C:\dist\server.generated.js'找不到模块“C:\dist\server.generated.js”
【发布时间】:2021-10-07 12:06:04
【问题描述】:

我正在尝试学习如何使用 node.js、Express 和 yarn 设置一个小型 Web 应用程序。

我已经在项目工作目录中使用了yarn install。 运行 yarn development 时出现以下错误:

Error: Cannot find module 'C:\dist\server.generated.js'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:976:15)
    at Function.Module._load (internal/modules/cjs/loader.js:859:27)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
    at internal/main/run_main_module.js:17:47 {
  code: 'MODULE_NOT_FOUND',
  requireStack: []
}
[nodemon] app crashed - waiting for file changes before starting...

我不明白为什么它在 C:\dist 中寻找 server.generated.js,因为这是它在运行 yarn development 时在我的项目 (C:\Users\name\Desktop\Coding\MERNing\MERN-Skeleton-Application\dist) 的 cwd 中自动生成的。

我所有的 Webpack 文件都指定使用 cwd 来生成 server.generated.js

const path = require('path')
const nodeExternals = require('webpack-node-externals')
const CURRENT_WORKING_DIR = process.cwd()

console.log(CURRENT_WORKING_DIR+'!')

const config = {
    name: "server",
    entry: [ path.join(CURRENT_WORKING_DIR , './server/server.js') ],
    target: "node",
    output: {
        path: path.join(CURRENT_WORKING_DIR , '/dist/'),
        filename: "server.generated.js",
        publicPath: '/dist/',
        libraryTarget: "commonjs2"
    },
    externals: [nodeExternals()],
    module: {
        rules: [
            {
                test: /\.js$/,
                exclude: /node_modules/,
                use: [ 'babel-loader' ]
            },
            {
                test: /\.(ttf|eot|svg|gif|jpg|png)(\?[\s\S]+)?$/,
                use: 'file-loader'
            }
        ]
    }
}

module.exports = config

【问题讨论】:

    标签: node.js express webpack yarnpkg


    【解决方案1】:

    问题是我的 nodemon.json 文件中有错字。

    我的代码是

    {
        "verbose": false,
        "watch": [ "./server" ],
        "exec": "webpack --mode=development --config webpack.config.server.js && node/dist/server.generated.js"
    }
    

    正确的代码是:

    {
        "verbose": false,
        "watch": [ "./server" ],
        "exec": "webpack --mode=development --config webpack.config.server.js && node ./dist/server.generated.js"
    }
    

    我之前完全省略了 ./,这解释了为什么它在 C: 中而不是在当前工作目录中寻找“server.generated.js”。

    【讨论】:

      猜你喜欢
      • 2020-04-08
      • 2017-04-23
      • 2021-10-01
      • 2023-01-27
      • 2020-02-17
      • 2022-07-13
      • 2023-02-20
      • 1970-01-01
      • 2018-09-30
      相关资源
      最近更新 更多