【问题标题】:Adding plugins to webpack breaks it向 webpack 添加插件会破坏它
【发布时间】:2019-10-26 00:01:09
【问题描述】:

我使用 webpack 3.5.6,我正在尝试使用以下插件:

https://www.npmjs.com/package/copy-webpack-plugin

这是我的 webpack 代码:

var path = require("path");
var DIST_DIR = path.resolve(__dirname, "public");
var SRC_DIR = path.resolve(__dirname, "src");

const CopyPlugin = require('copy-webpack-plugin');
var config = {
//entry: [ SRC_DIR + "/app/index.js"],
plugins:[new CopyPlugin([
    { from: '/deployment-config/robots-stg.txt', to: '/' }
])],
entry: [ SRC_DIR + "/app/client.js"],
output: {
    path: DIST_DIR ,
    filename: "bundle.js"
},
module: {
    loaders: [
        {
            test: /\.js?/,
            include: SRC_DIR,
            loader: "babel-loader",
            query: {
                "plugins": ["transform-decorators-legacy", "transform-class-properties","transform-decorators"],
                presets: [
                    "react",
                    "es2015",
                    "stage-2",
                    ['env', {targets: {browsers: ['last 3 versions']}}]]
            }
        }, {
            test: /\.s?css/,
            include: SRC_DIR,
            loaders: ["style-loader","css-loader","sass-loader"]
        },
        { test: /\.(svg|woff|ttf|wav|mp3)$/, loader: "file-loader" },
        {
            test: /\.(png|jpe?g|gif)$/,
            loader: 'url-loader?limit=25000&name=img/[name].[ext]'
        }
      ]
   }
};

  module.exports = config;

当我运行它时,我收到以下错误:

\node_modules\webpack\bin\webpack.js:348
                    throw err;
                    ^

  TypeError: Cannot read property 'emit' of undefined

删除插件部分后,一切正常。我是否不正确地添加了插件?

【问题讨论】:

  • 你能粘贴你的整个 webpack 配置吗?因为你不需要它...
  • @ChrisR 我添加了

标签: webpack webpack-2 webpack-4 webpack-style-loader


【解决方案1】:

在我的例子中,它有助于将 webpack 降级到版本 4.0.0。

npm uninstall webpack --save
npm install webpack@4.0.0 --save
npm install webpack-cli -D

【讨论】:

    【解决方案2】:

    当您复制到目录时,您需要在CopyWebpackPlugin 中指定toType 选项。默认情况下,插件假定to 是一个文件路径。试试这个:

    plugins:[new CopyPlugin([
      { from: '/deployment-config/robots-stg.txt', to: '/', toType: "dir" }
    ])],
    

    阅读更多关于该选项的信息here

    【讨论】:

    • 只是预感。你确定路径正确吗? / 将进入您的操作系统的根目录。我猜预期的路径是./,它是您的应用程序的根目录。 from 也一样。
    猜你喜欢
    • 1970-01-01
    • 2012-03-23
    • 2019-04-04
    • 1970-01-01
    • 1970-01-01
    • 2021-10-30
    • 2014-09-10
    • 2020-06-18
    • 2017-02-02
    相关资源
    最近更新 更多