首页 > 解决方案 > 当为 webpack 输入命令“npm run dev”时,它会创建一个以 NaN 结尾的文件夹

问题描述

我正在 Lynda.com “learning-full-stack-javascript-development-mongodb-node-and-react” 上一门课程,当我使用命令“npm run dev”在“public”中创建一个 bundle.js 文件时" 文件夹,它会创建一个文件夹 "publicNaN" 并将文件 bundle.js 放入其中。我希望它位于“公共”文件夹中。

这是 webpack.config.js 文件:

const path = require("path");

const BUILD_PATH = path.join(__dirname, "./public");

// See https://github.com/Microsoft/vscode/blob/master/extensions/shared.webpack.config.js
module.exports = {
    mode: "production",
    target: "node",
    node: {
        __dirname: false
    },
    entry: {
        extension: ["./src/index.js"]
    },
    output: {
        path: BUILD_PATH + + '/public',
        filename: "bundle.js",
        libraryTarget: "commonjs",
    },
    resolve: {
        extensions: [".ts", ".js"]
    },
    externals: {
        "vscode": "commonjs vscode"
    },
    module: {
        rules: [
            {
                test: /\.ts$/,
                use: [
                    {
                        loader: "ts-loader"
                    }
                ],
                exclude: /node_modules/
            },
            {
                test: /\.mjs$/,
                type: "javascript/auto",
                use: []
            }
        ]
    },
    stats: {
        children: false,
        modules: false
    }
};

标签: javascriptreactjswebpack

解决方案


您已经在此处将 BUILD_PATH 设置为 /public:

const BUILD_PATH = path.join(__dirname, "./public");

因此无需将其添加到输出对象中。两个 + 号也尝试转换为数字。这就是你最后得到 NaN 的原因。

所以将输出对象更改为:

output: {
   path: BUILD_PATH,
   filename: "bundle.js",
   libraryTarget: "commonjs",
},

推荐阅读