В требованиях проекта 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'
}]
}
}
}])
}