Skip to content

Possible Typo in createOutputWriter.js #441

@JackTiber

Description

@JackTiber

Describe the bug
On line 51 of lib/output/createOutputWriter.js the local variable localFs is either filestream or the fs module from Node, but on line 88 the method localFs.mkdirp is called to output the json file. The resulting error during a build is below.

localFs.mkdirp(options.path, mkdirCallback);
              ^
TypeError: localFs.mkdirp is not a function

Changing this to localFs.mkdir seems to fix the issue.

To Reproduce
Steps to reproduce the behavior:

  1. Install at 7.1.1
  2. Set options.keepInMemory to true
  3. Run build

Expected behavior
For the JSON file to be output correctly in memory.

Webpack Config

const path = require("path");
const resolve = require("path").resolve;
const HtmlWebpackPlugin = require("html-webpack-plugin");
const CopyPlugin = require("copy-webpack-plugin");
const NodePolyfillPlugin = require("node-polyfill-webpack-plugin");
const AssetsPlugin = require("assets-webpack-plugin");

const runEnv = process.env.NODE_ENV || "development";

module.exports = {
    entry: "./src/index.tsx",
    output: {
        path: resolve(__dirname, "dist"),
        filename: runEnv === "production" ? "[name].[hash].js" : "bundle.js",
        publicPath: runEnv === "production" ? "/request" : "/",
    },
    target: "web",
    mode: runEnv,
    devtool: runEnv === "production" ? "cheap-source-map" : "eval-source-map",
    devServer: {
        contentBase: path.join(__dirname, "dist"),
        port: 3003,
        historyApiFallback: true,
        openPage: "/request",
        hot: true,
    },
    resolve: {
        extensions: [".ts", ".tsx", ".js", ".json"],
    },
    module: {
        rules: [
            {
                test: /\.tsx?$/,
                loader: "babel-loader",
                exclude: /node_modules/,
            },
            {
                test: /\.svg$/,
                use: ["@svgr/webpack", "url-loader"],
            },
            {
                test: /\.(png|pdf|jpg|eot|woff|woff2|ttf|gif)$/,
                oneOf: [
                    {
                        loader: "url-loader",
                        options: {
                            limit: 9000,
                        },
                    },
                ],
            },
        ],
    },
    plugins: [
        new HtmlWebpackPlugin({
            filename: "index.html",
            template: "src/index.html",
            excludeChunks: ["server"],
        }),
        new CopyPlugin({
            patterns: [
                {
                    from: "./src/_assets",
                    to: "assets",
                },
            ],
        }),
        new NodePolyfillPlugin(),
        new AssetsPlugin({
            filename: "bundlePath.json",
            fullPath: false,
            path: path.join(__dirname, "dist"),
            includeAllFileTypes: false,
            fileTypes: ["js"],
            keepInMemory: true,
        }),
    ],
};

Desktop (please complete the following information):

  • OS: Win 11
  • Node version: 16.13.0 LTS
  • Plugin version: 7.1.1

Additional context
Add any other context about the problem here.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions