Oto moje 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})
]
};
Buduję z
$ webpack
W moim dist
folderze dostaję tylko
bundle.min.js
bundle.min.js.map
Chciałbym również zobaczyć nieskompresowane bundle.js
javascript
node.js
webpack
Dziękuję Ci
źródło
źródło
Error: webpack.optimize.UglifyJsPlugin has been removed, please use config.optimization.minimize instead.
Możesz użyć jednego pliku konfiguracyjnego i dołączyć warunkowo wtyczkę UglifyJS za pomocą zmiennej środowiskowej:
a następnie ustaw tę zmienną, kiedy chcesz ją zminimalizować:
Edytować:
Jak wspomniano w komentarzach,
NODE_ENV
jest ogólnie używany (zgodnie z konwencją) do stwierdzenia, czy dane środowisko jest środowiskiem produkcyjnym czy programistycznym. Aby to sprawdzić, możesz również ustawićvar PROD = (process.env.NODE_ENV === 'production')
i kontynuować normalnie.źródło
compress
zamiastminimize
?webpack -p
. Ustawienia z webpack.optimize.UglifyJsPlugin w twojej konfiguracji webpack zostaną (przynajmniej częściowo) zignorowane (przynajmniej ustawieniemangle: false
zostanie zignorowane).webpack && webpack -p
.definePlugin
zamiast tego, które moim zdaniem jest domyślnie instalowane z Webpack.Możesz uruchomić webpack dwa razy z różnymi argumentami:
następnie sprawdź argumenty wiersza poleceń w
webpack.config.js
:przykład webpack.config.js
źródło
Aby dodać kolejną odpowiedź, flaga
-p
(skrót od--optimize-minimize
) włączy UglifyJS z domyślnymi argumentami.Nie dostaniesz zminimalizowanego i surowego pakietu z jednego przebiegu ani nie wygenerujesz pakietów o różnych nazwach, aby
-p
flaga mogła nie spełniać twojego zastosowania.I odwrotnie,
-d
opcja jest krótka--debug
--devtool sourcemap
--output-pathinfo
Moi webpack.config.js pomija
devtool
,debug
,pathinfo
, a minmize plugin na rzecz tych dwóch flag.źródło
Może się tu spóźniam, ale mam ten sam problem, więc napisałem w tym celu wtyczkę unminified-webpack-plugin .
Instalacja
Stosowanie
Wykonując powyższe czynności, otrzymasz dwa pliki library.min.js i library.js. Nie musisz uruchamiać pakietu dwa razy, to po prostu działa! ^^
źródło
Moim zdaniem o wiele łatwiej jest bezpośrednio korzystać z narzędzia UglifyJS :
npm install --save-dev uglify-js
./dst/bundle.js
plik.Dodaj
build
polecenie dopackage.json
:npm run build
polecenie.Nie musisz instalować uglify-js globalnie, po prostu zainstaluj go lokalnie dla projektu.
źródło
Możesz utworzyć dwie konfiguracje dla webpacka, jedną, która minimalizuje kod, a drugą, która tego nie robi (wystarczy usunąć wiersz optimize.UglifyJSPlugin), a następnie uruchomić obie konfiguracje w tym samym czasie
$ webpack && webpack --config webpack.config.min.js
źródło
Zgodnie z tym wierszem: https://github.com/pingyuanChen/webpack-uglify-js-plugin/blob/master/index.js#L117
powinno być coś takiego:
Rzeczywiście możesz mieć wiele kompilacji, eksportując różne konfiguracje zgodnie ze swoimi strategiami env / argv.
źródło
minimize
w dokumentach. Być może jest to przestarzałe?działa dla mnie z
-p
flagą.źródło
Możesz sformatować plik webpack.config.js w następujący sposób:
A następnie, aby skompilować go w sposób nieuprawniony (w głównym katalogu projektu):
Aby zbudować to zminimalizowane uruchomienie:
Uwagi: Upewnij się, że w wersji niezminimalizowanej zmienisz nazwę pliku wyjściowego na
library.js
i dla zminimalizowanego,library.min.js
aby się nie zastępowały.źródło
Miałem ten sam problem i musiałem spełnić wszystkie te wymagania:
W końcu rozwiązałem to w następujący sposób:
webpack.config.js:
package.json:
Następnie mogę zbudować (Nie zapomnij
npm install
wcześniej):źródło
Znalazłem nowe rozwiązanie tego problemu.
Wykorzystuje to tablicę konfiguracji, aby umożliwić pakietowi WWW tworzenie równoległej wersji zminimalizowanej i niezminimalizowanej. To przyspiesza kompilację. Nie trzeba uruchamiać pakietu dwa razy. Nie potrzebujesz dodatkowych wtyczek. Po prostu webpack.
webpack.config.js
Uruchomienie
webpack
spowoduje zbudowanie tylko wersji nie zminimalizowanej.Uruchomienie
webpack --env=production
spowoduje zbudowanie wersji zminimalizowanej i niezminimalizowanej w tym samym czasie.źródło
Powinieneś wyeksportować tablicę w następujący sposób:
źródło
Możesz zdefiniować dwa punkty wejścia w konfiguracji pakietu internetowego, jeden dla normalnego js, a drugi dla zminimalizowanego js. Następnie powinieneś wyprowadzić pakiet z jego nazwą i skonfigurować wtyczkę UglifyJS, aby zawierała pliki min.js. Aby uzyskać więcej informacji, zobacz przykładową konfigurację pakietu internetowego:
Po uruchomieniu pakietu WebPack dostaniesz plik bundle.js i bundle.min.js w folderze dist, bez potrzeby instalowania dodatkowej wtyczki.
źródło