Ini milik saya webpack.config.js
var webpack = require("webpack");
module.exports = {
entry: "./entry.js",
devtool: "source-map",
output: {
path: "./dist",
filename: "bundle.min.js"
},
plugins: [
new webpack.optimize.UglifyJsPlugin({minimize: true})
]
};
Saya membangun dengan
$ webpack
Di dist
folder saya , saya hanya mendapatkan
bundle.min.js
bundle.min.js.map
Saya juga ingin melihat yang tidak terkompresi bundle.js
javascript
node.js
webpack
Terima kasih
sumber
sumber
Error: webpack.optimize.UglifyJsPlugin has been removed, please use config.optimization.minimize instead.
Anda dapat menggunakan file konfigurasi tunggal, dan menyertakan plugin UglifyJS dengan menggunakan variabel lingkungan:
dan kemudian setel variabel ini saat Anda ingin memperkecilnya:
Edit:
Seperti disebutkan dalam komentar,
NODE_ENV
umumnya digunakan (dengan konvensi) untuk menyatakan apakah lingkungan tertentu adalah produksi atau lingkungan pengembangan. Untuk memeriksanya, Anda juga dapat mengaturvar PROD = (process.env.NODE_ENV === 'production')
, dan melanjutkan secara normal.sumber
compress
bukanminimize
?webpack -p
pengaturan dari webpack.optimize.UglifyJsPlugin dalam konfigurasi webpack Anda akan (setidaknya sebagian) diabaikan (setidaknya pengaturanmangle: false
diabaikan).webpack && webpack -p
,.definePlugin
, yang saya pikir diinstal secara default dengan Webpack.Anda dapat menjalankan webpack dua kali dengan berbagai argumen:
kemudian periksa argumen baris perintah di
webpack.config.js
:contoh webpack.config.js
sumber
Untuk menambahkan jawaban lain, flag
-p
(kependekan dari--optimize-minimize
) akan mengaktifkan UglifyJS dengan argumen default.Anda tidak akan mendapatkan bundel yang diperkecil dan mentah dari sekali proses atau menghasilkan bundel dengan nama yang berbeda sehingga
-p
bendera mungkin tidak memenuhi use case Anda.Sebaliknya
-d
pilihannya adalah kependekan dari--debug
--devtool sourcemap
--output-pathinfo
Webpack.config.js saya menghilangkan
devtool
,debug
,pathinfo
, dan minmize Plugin mendukung dua bendera ini.sumber
Mungkin saya terlambat ke sini, tetapi saya memiliki masalah yang sama, jadi saya menulis plugin-webpack-unminified untuk tujuan ini.
Instalasi
Pemakaian
Dengan melakukan seperti di atas, Anda akan mendapatkan dua file library.min.js dan library.js. Tidak perlu menjalankan webpack dua kali, itu hanya berfungsi! ^^
sumber
Menurut pendapat saya, jauh lebih mudah menggunakan alat UglifyJS secara langsung:
npm install --save-dev uglify-js
./dst/bundle.js
file.Tambahkan
build
perintah kepackage.json
:npm run build
perintah.Tidak perlu menginstal uglify-js secara global, cukup instal secara lokal untuk proyek tersebut.
sumber
Anda dapat membuat dua konfigurasi untuk webpack, satu yang mengecilkan kode dan yang tidak (cukup hapus baris optim.UglifyJSPlugin) dan kemudian jalankan kedua konfigurasi pada saat yang sama
$ webpack && webpack --config webpack.config.min.js
sumber
Menurut dengan baris ini: https://github.com/pingyuanChen/webpack-uglify-js-plugin/blob/master/index.js#L117
harus seperti:
Memang Anda dapat memiliki beberapa build dengan mengekspor konfigurasi yang berbeda sesuai dengan strategi env / argv Anda.
sumber
minimize
dalam dokumen. Mungkin sudah usang?bekerja untuk saya, dengan
-p
bendera.sumber
Anda dapat memformat webpack.config.js Anda seperti ini:
Dan kemudian untuk membangunnya jalankan tanpaminminasi (saat berada di direktori utama proyek):
Untuk membangunnya, proses minimal:
Catatan: Pastikan bahwa untuk versi yang tidak diubah Anda mengubah nama file output menjadi
library.js
dan untuk yang diperkecillibrary.min.js
sehingga mereka tidak saling menimpa.sumber
Saya memiliki masalah yang sama, dan harus memenuhi semua persyaratan ini:
Saya akhirnya menyelesaikannya sebagai berikut:
webpack.config.js:
package.json:
Maka saya dapat membangun dengan (Jangan lupa
npm install
sebelumnya):sumber
Saya menemukan solusi baru untuk masalah ini.
Ini menggunakan array konfigurasi untuk memungkinkan webpack untuk membangun versi minified dan non-minified secara paralel. Ini membuat build lebih cepat. Tidak perlu menjalankan paket web dua kali. Tidak perlu plugin tambahan. Hanya paket web.
webpack.config.js
Menjalankan
webpack
hanya akan membangun versi non-minified.Menjalankan
webpack --env=production
akan membangun versi yang diperkecil dan tidak-diperkecil pada saat yang sama.sumber
Anda harus mengekspor array seperti ini:
sumber
Anda dapat menetapkan dua titik masuk dalam konfigurasi paket web Anda, satu untuk js normal dan yang lainnya untuk js yang diperkecil. Maka Anda harus mengeluarkan bundel Anda dengan namanya, dan mengonfigurasi plugin UglifyJS untuk menyertakan file min.js. Lihat contoh konfigurasi webpack untuk detail lebih lanjut:
Setelah menjalankan webpack, Anda akan mendapatkan bundle.js dan bundle.min.js di folder dist Anda, tidak perlu plugin tambahan.
sumber