代码之家  ›  专栏  ›  技术社区  ›  Elvira

webpack找不到模块mini css extract plugin

  •  1
  • Elvira  · 技术社区  · 6 年前

    我正在使用webpack^4.26.0。在使用css之前,我在webpack 3中使用了“extract text webpack plugin”。但我已经读过那个插件不再在webpack 4上工作了。而“抽取文本网页包插件”则建议使用“迷你css抽取插件”插件。

    我已经通过以下命令安装了插件:

    npm安装--保存dev mini css提取插件

    需要Webpackconfig中的插件,还将其添加到我的规则和插件中:

    // webpack.config.js
    const webpack = require("webpack");
    const path = require("path");
    const CopyWebpackPlugin = require("copy-webpack-plugin");
    const MiniCssExtractPlugin = require("mini-css-extract-plugin");
    
    const config = {
      context: path.resolve(__dirname),
      entry: "./index.js",
      devServer: {
        contentBase: "./dist"
      },
      output: {
        path: path.resolve(__dirname, "dist"),
        filename: "bundle.js"
      },
      resolve: {
        // Add '.ts' and '.tsx' as resolvable extensions.
        extensions: [".ts", ".tsx", ".js", ".json"]
      },
      module: {
        rules: [
          {
            test: /\.js$/,
            include: path.resolve(__dirname),
            use: [
              {
                loader: "babel-loader",
                options: {
                  presets: [["@babel/env", { modules: false }], "@babel/react"]
                }
              }
            ]
          },
          {
            test: /\.tsx?$/,
            loader: "awesome-typescript-loader"
          },
          {
             test: /\.css$/,
             use: [MiniCssExtractPlugin.loader, "css-loader"]
           }
        ],
        noParse: [/aws-sdk/]
      },
      plugins: [
        new webpack.DefinePlugin({
          "process.env.NODE_ENV": JSON.stringify(process.env.NODE_ENV),
          "process.env.STATIC_PORT": JSON.stringify(process.env.STATIC_PORT),
          VERSION: JSON.stringify(require("./package.json").version)
        }),
        new MiniCssExtractPlugin({
          filename: 'bundle.css'
        }),
        new CopyWebpackPlugin([{ from: "./cb_icons", to: "cb_icons" }])
      ],
      node: { fs: "empty" },
      externals: [{ "./cptable": "var cptable" }, { "./jszip": "jszip" }]
    };
    
    module.exports = config;
    

    但是我得到了以下错误: enter image description here

    它安装在“我的节点”模块中:

    组件/搜索工具包/节点模块/小型css提取插件

    我的文件夹结构: enter image description here

    0 回复  |  直到 6 年前
        1
  •  0
  •   William Huang    6 年前

    默认情况下,heroku将安装在dependencies和devdependencies下package.json中列出的所有依赖项。在运行安装和构建步骤之后,heroku将在部署应用程序之前去掉devdependencies下声明的包。

    来源: https://devcenter.heroku.com/articles/nodejs-support

    如果在运行时需要devdependencies,可以将其卸载并安装为运行时依赖项,也可以将heroku环境变量设置为withold以避免删除devdependencies。

    在命令行中,如下所示:

      heroku config:set NPM_CONFIG_PRODUCTION=false