Czy ktoś wie, jak utworzyć wiele ścieżek wyjściowych w pliku webpack.config.js? Używam bootstrap-sass, który jest dostarczany z kilkoma różnymi plikami czcionek itp. Aby webpack mógł je przetworzyć, dołączyłem program ładujący pliki, który działa poprawnie, jednak pliki, które wyprowadza, są zapisywane w ścieżce wyjściowej określonej dla reszta moich plików:
output: {
path: __dirname + "/js",
filename: "scripts.min.js"
}
Chciałbym osiągnąć coś, w którym być może mógłbym spojrzeć na typy rozszerzeń dowolnego wysyłanego pakietu internetowego, a rzeczy kończące się na .woff .eot itp., Przekierować je do innej ścieżki wyjściowej. czy to możliwe?
Zrobiłem trochę googlowania i natknąłem się na ten * problem na githubie, gdzie jest kilka rozwiązań, edytuj:
ale wygląda na to, że potrzebujesz znać punkt wejścia, aby móc określić dane wyjściowe za pomocą metody skrótu, np .:
var entryPointsPathPrefix = './src/javascripts/pages';
var WebpackConfig = {
entry : {
a: entryPointsPathPrefix + '/a.jsx',
b: entryPointsPathPrefix + '/b.jsx',
c: entryPointsPathPrefix + '/c.jsx',
d: entryPointsPathPrefix + '/d.jsx'
},
// send to distribution
output: {
path: './dist/js',
filename: '[name].js'
}
}
* https://github.com/webpack/webpack/issues/1189
jednak w moim przypadku, jeśli chodzi o pliki czcionek, proces wprowadzania jest trochę abstrakcyjny i wszystko, co wiem, to wynik. w przypadku innych moich plików, które przechodzą transformacje, istnieje znany punkt, w którym wymagam, aby były one następnie obsługiwane przez moje programy ładujące. gdyby istniał sposób, aby dowiedzieć się, gdzie miał miejsce ten krok, mógłbym użyć metody skrótu, aby dostosować ścieżki wyjściowe, ale nie wiem, gdzie te pliki są wymagane.
module{}
Obiekt jest nieprawidłowy. To nie jest wymagane. Zostanie on przedłużony / połączone na tym samym poziomie, co słów kluczowychname
,entry
,output
(z przykładu). <pre> <code> {module: {mode: "development", devtool: "source-map"}}, name: "a", entry: "./a/app", output: {path: "/ a ", nazwa_pliku:" bundle.js "}} </code> </pre>Webpack obsługuje wiele ścieżek wyjściowych.
Ustaw ścieżki wyjściowe jako klucz wejścia. I użyj
name
jako szablonu wyjściowego.konfiguracja webpacka:
wygenerowane:
źródło
dist
w nim potrzebować . Więc zamiastmodule/a/index.js
być ścieżką wyjściową, powinna być.module/a/dist/index.js
W przeciwnym razie nadpisujesz swoje pliki wejściowe.dist
Folder @Sung jest już skonfigurowany w ścieżce wyjściowej. Tak więc wygenerowany plik byłby faktycznie takidist/module/a/index.js
, o którym nie wspomniałem.output.filename
zgodnie z dokumentacją tutaj: webpack.js.org/configuration/output/#outputfilenameJeśli możesz żyć z wieloma ścieżkami wyjściowymi o tym samym poziomie głębi i strukturze folderów, istnieje sposób, aby to zrobić w pakiecie internetowym 2 (musisz jeszcze przetestować z pakietem webpack 1.x)
Zasadniczo nie przestrzegasz zasad dokumentu i podajesz ścieżkę do nazwy pliku.
To zajmie taką strukturę folderów
I zamień to w
źródło
Napisałem wtyczkę, która, mam nadzieję, może zrobić to, co chcesz, możesz określić znane lub nieznane punkty wejścia (za pomocą globu ) i określić dokładne wyniki lub dynamicznie wygenerować je za pomocą ścieżki i nazwy pliku wejściowego. https://www.npmjs.com/package/webpack-entry-plus
źródło
Zdecydowanie możesz zwrócić tablicę konfiguracji z pliku webpack.config. Ale nie jest to optymalne rozwiązanie, jeśli chcesz tylko, aby kopia artefaktów znalazła się w folderze dokumentacji twojego projektu, ponieważ powoduje to, że webpack tworzy kod dwukrotnie, podwajając całkowity czas kompilacji.
W takim przypadku polecam zamiast tego użyć wtyczki FileManagerWebpackPlugin:
źródło
Możesz mieć tylko jedną ścieżkę wyjściową.
z dokumentacji https://github.com/webpack/docs/wiki/configuration#output
źródło
Skończyło się na tym, że przeszedłem do index.js w module ładującym pliki i zmieniłem miejsce, w którym zawartość była emitowana. Prawdopodobnie nie jest to optymalne rozwiązanie, ale dopóki nie ma innego sposobu, jest to w porządku, ponieważ dokładnie wiem, co jest obsługiwane przez ten program ładujący, czyli tylko czcionki.
źródło