О проблемах, возникающих при использовании плагина filemanager-webpack-plugin

В требованиях проекта vue необходимо создать ZIP-файл во время упаковки. В настоящее время необходимо использовать подключаемый модуль filemanager-webpack-plugin. Ниже приведены проблемы, возникающие при использовании.

Вопрос один:

появляется проблема:

В файле vue.config.js при настройке filemanager-webpack-plugin в piugins будет сообщено об ошибке, что onEnd — неизвестный атрибут

configureWebpack: {
  name: "test",
  resolve: {
    alias: {
      "@": resolve("src")
    }
  },
  plugins: [
    new fileanagerWebpackPlugin({
      onEnd: {
        delete: [   
          './dist.zip',
        ],
        archive: [{
          source: './dist', 
          destination: './dist.zip'
        }]
      }
    })
  ]
}

решение:

метод 1:

 Вышеупомянутая проблема возникает из-за того, что на внешнем уровне onEnd есть событие, и ошибка может быть решена после добавления событий на внешний уровень.

configureWebpack: {
  name: "test",
  resolve: {
    alias: {
      "@": resolve("src")
    }
  },
  plugins: [
    new fileanagerWebpackPlugin({
      events: {
        onEnd: {
          delete: [   
            './dist.zip',
          ],
          archive: [{
            source: './dist', 
            destination: './dist.zip'
          }]
        }
      }
    })
  ]
}

Способ 2:

Конфигурация также возможна в chanWebpack

chainWebpack(config){
  config.plugin("fileManager").use(fileanagerWebpackPlugin).tap(args => [{
    events: {
      onEnd: {
        delete: [   
          './dist.zip',
        ],
        archive: [{
          source: './dist', 
          destination: './dist.zip'
        }]
      }
    }
  }])
}

Короче говоря, где бы вы его ни настраивали, не забывайте, что во внешнем слое есть событие! ! !

Вопрос второй:

Запустите проект после настройки, если проект не упакован, он сообщит об ошибке и завершит операцию

Ошибка:

Ошибка: EPERM: операция не разрешена, откройте '*盘\***\***\***\dist.zip'

Решение

Вам необходимо настроить mkdir.Если в корневом каталоге нет сжатого пакета dist, будет автоматически сгенерирован пустой сжатый пакет.После автоматического создания сжатого пакета проект может успешно работать.

configureWebpack: {
  name: "test",
  resolve: {
    alias: {
      "@": resolve("src")
    }
  },
  plugins: [
    new fileanagerWebpackPlugin({
      events: {
        onEnd: {
          mkdir: ['./dist'],
          delete: [   
            './dist.zip',
          ],
          archive: [{
            source: './dist', 
            destination: './dist.zip'
          }]
        }
      }
    })
  ]
}
chainWebpack(config){
  config.plugin("fileManager").use(fileanagerWebpackPlugin).tap(args => [{
    events: {
      onEnd: {
        mkdir: ['./dist'],
        delete: [   
          './dist.zip',
        ],
        archive: [{
          source: './dist', 
          destination: './dist.zip'
        }]
      }
    }
  }])
}

Supongo que te gusta

Origin blog.csdn.net/m0_46114541/article/details/129527974
Recomendado
Clasificación