yarn局部安装了webpack但是一直显示未安装

幽鬼兔
  • 181

多次尝试删除node_modules和build文件夹重新安装,但是还是显示webpack not installed

package.json如下

"devDependencies": {
    "@babel/core": "^7.8.3",
    "@babel/polyfill": "7.8.3",
    "@babel/preset-env": "^7.8.3",
    "autoprefixer": "9.7.4",
    "babel-loader": "^8.0.6",
    "clean-webpack-plugin": "3.0.0",
    "css-loader": "3.4.2",
    "file-loader": "5.0.2",
    "html-webpack-plugin": "3.2.0",
    "postcss-loader": "3.0.0",
    "style-loader": "1.1.3",
    "url-loader": "3.0.0",
    "webpack": "4.41.5",
    "webpack-cli": "3.3.10"
  }

build/webpack.config.js

// webpack.config.js
const path = require('path');
// 修改引入HTML的js的名称
const htmlWebpaclPlugin = require("html-webpack-plugin");
// 清除上次的编译
const { CleanWebpackPlugin } = require("clean-webpack-plugin");
// css 分割,4.0以前用extract-text-webpack-plugin
// 这个插件应该只用在 production 配置中,并且在loaders链中不使用 style-loader
const MiniCssExtractPlugin = require("mini-css-extract-plugin");

module.exports = {
  mode: "development", // 开发模式
  // entry: path.resolve(__dirname, "../src/main.js"), // 单入口文件
  // entry: {
  //   main: path.resolve(__dirname, "../src/main.js")
  // }, // 多入口文件
  entry: [
    '@babel/polyfill',
    path.resolve(__dirname, "../src/main.js")
  ],
  output: {
    filename: "[name].[hash:8].js", // 打包后的文件名称
    path: path.resolve(__dirname, "../dist") // 打包后的目录
  },
  plugins: [
    new htmlWebpaclPlugin({
      template: path.resolve(__dirname, '../public/index.html'),
      filename: 'index.html',
      chunks: ['main'] // 与入口文件对应的模块名
    }),
    new MiniCssExtractPlugin({
      // [id]和[name]在webpack中被称做placeholder。
      // 用来在webpack构建之后动态得替换内容的(本质上是正则替换)
      // filename比较简单就是根据entry中的名字来命名,是静态的。
      // chunkFilename是构建应用的时候生成的
      filename: '[name].[hash:8].css',
      // chunkFilename用来打包require.ensure方法中引入的模块
      // 告诉webapck如何处理非entry模块(有的文件不是在entry上的),非entry的只能使用id
      // id在打包后的文件里
      chunkFilename: '[id].css'
    }),
    new CleanWebpackPlugin()
  ],
  module: {
    rules: [
      {
        test: /\.css/,
        // style-loader会添加到style标签里,这里是打包到单个文件
        use: [
          MiniCssExtractPlugin.loader,
          "css-loader",
          "postcss-loader"
        ] // 从右向左解析原则
      },
      {
        test: /\.(jpe?g|png|gif)$/i,
        use: {
          loader: 'url-loader',
          options: {
            limit: 10240,
            fallback: {
              // url-loader 一般与file-loader搭配使用,功能与 file-loader 类似,如果文件小于限制的大小。
              // 则会返回 base64 编码,否则使用 file-loader 将文件移动到输出的目录中
              loader: 'file-loader',
              options: {
                name: 'img/[name].[hash8].[ext]'
              }
            }
          }
        }
      },
      {
        test: /\.js$/,
        use: {
          loader: 'babel-loader',
          options: {
            presets: ['@babel/preset-env']
          }
        },
        exclude: /node_modules/
      }
    ]
  }
};

每次运行yarn build命令,都会显示如下的报错
QQ截图20200127231154.png

明明安装了webpack,即使卸载webpack重新yarn add webpack,尝试了删除node_modules文件夹重新yarn,依然会报webpack not installed

回复
阅读 2.4k
2 个回答

已解决。。因为有一个包没有安装,但是在代码里调用了

删掉package-lock 和 node_modules 然后重新npm i 看看

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏