Quelqu'un sait-il comment créer plusieurs chemins de sortie dans un fichier webpack.config.js? J'utilise bootstrap-sass qui est livré avec quelques fichiers de polices différents, etc. Pour que webpack les traite, j'ai inclus un chargeur de fichiers qui fonctionne correctement, mais les fichiers qu'il génère sont enregistrés dans le chemin de sortie spécifié pour le reste de mes fichiers:
output: {
path: __dirname + "/js",
filename: "scripts.min.js"
}
J'aimerais réaliser quelque chose où je pourrais peut-être regarder les types d'extensions pour n'importe quel webpack en sortie et pour les choses se terminant par .woff .eot, etc., les faire détourner vers un chemin de sortie différent. Est-ce possible?
J'ai fait un peu de recherche sur Google et suis tombé sur ce * problème sur github où quelques solutions sont proposées, éditez:
mais il semble que vous ayez besoin de connaître le point d'entrée pour pouvoir spécifier une sortie en utilisant la méthode de hachage, par exemple:
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
Cependant, dans mon cas, en ce qui concerne les fichiers de polices, le processus d'entrée est en quelque sorte abstrait et tout ce que je sais, c'est la sortie. dans le cas de mes autres fichiers subissant des transformations, il y a un point connu où je demande qu'ils soient ensuite traités par mes chargeurs. s'il y avait un moyen de savoir où se déroulait cette étape, je pourrais alors utiliser la méthode de hachage pour personnaliser les chemins de sortie, mais je ne sais pas où ces fichiers sont requis.
module{}
objet est incorrect. Ce n'est pas obligatoire. Il sera étendu / fusionné au même niveau que les mots clésname
,entry
,output
( à partir de votre exemple). <pre> <code> {module: {mode: "development", devtool: "source-map"}}, nom: "a", entrée: "./a/app", sortie: {chemin: "/ a ", nom de fichier:" bundle.js "}} </code> </pre>Webpack prend en charge plusieurs chemins de sortie.
Définissez les chemins de sortie comme clé d'entrée. Et utilisez le
name
comme modèle de sortie.configuration webpack:
généré:
la source
dist
. Donc, au lieu d'module/a/index.js
être un chemin de sortie, cela devrait êtremodule/a/dist/index.js
Ou bien, vous écrasez vos fichiers d'entrée.dist
dossier @Sung est déjà configuré dans le chemin de sortie. Donc le fichier généré serait en faitdist/module/a/index.js
, ce que je n'ai pas mentionné.output.filename
comme documenté ici: webpack.js.org/configuration/output/#outputfilenameSi vous pouvez vivre avec plusieurs chemins de sortie ayant le même niveau de profondeur et la même structure de dossiers, il existe un moyen de le faire dans webpack 2 (vous n'avez pas encore testé avec webpack 1.x)
En gros, vous ne suivez pas les règles de la doc et vous fournissez un chemin pour le nom de fichier.
Cela prendra cette structure de dossier
Et transformez-le en
la source
J'ai écrit un plugin qui peut, espérons-le, faire ce que vous voulez, vous pouvez spécifier des points d'entrée connus ou inconnus (en utilisant glob ) et spécifier des sorties exactes ou les générer dynamiquement en utilisant le chemin et le nom du fichier d'entrée. https://www.npmjs.com/package/webpack-entry-plus
la source
Vous pouvez certainement renvoyer un tableau de configurations à partir de votre fichier webpack.config. Mais ce n'est pas une solution optimale si vous voulez simplement qu'une copie des artefacts se trouve dans le dossier de la documentation de votre projet, car cela permet à Webpack de créer votre code en doublant le temps total de construction.
Dans ce cas, je recommanderais d'utiliser le plugin FileManagerWebpackPlugin à la place:
la source
Vous ne pouvez avoir qu'un seul chemin de sortie.
à partir de la documentation https://github.com/webpack/docs/wiki/configuration#output
la source
En fait, je me suis contenté d'aller dans index.js dans le module de chargement de fichiers et de changer l'endroit où le contenu était émis. Ce n'est probablement pas la solution optimale, mais jusqu'à ce qu'il y ait un autre moyen, cela me convient car je sais exactement ce qui est géré par ce chargeur, qui n'est que des polices.
la source