2015-11-12 1 views
0

Est-il possible d'uglifier tous les modules RequireJS sans les concaténer en un seul fichier? (Je sais que l'inverse est possible avec optimize: "none").Uglifier les modules RequireJS sans les concaténer

+2

Puisque cela contournerait efficacement r.js et n'utiliserait UglifyJS, pourquoi ne pas simplement appeler UglifyJS directement à partir de votre outil de construction? – kryger

+1

Oui, @kryger a raison. C'est un processus de construction tout ou rien, donc l'optimisation inclut la minification et la concaténation. –

+0

Il n'est pas nécessaire de mettre "RequireJS" dans le titre de la question ou dans la description de la question. Étant donné que vous avez étiqueté votre question avec [tag: requirejs], alors * évidemment * nous parlons des modules que RequireJS peut charger, et non des modules dans le format natif de SystemJS, par exemple, que RequireJS ne peut pas charger. – Louis

Répondre

0

Je connais uglifyjs-folder cette option, avec les paramètres -e et -o référençant un dossier (pas un fichier).

ex:

uglifyjs-folder "%CD%" -e -o "%CD%\subfolder"

(obs: %CD% dans Windows obtient le dossier en cours)

0

Il est possible utilisation r.js à enlaidir les fichiers sans les concaténer. Si vous ne fournissez aucun nom de module dans les options de configuration (vous n'utilisez pas modules et ne spécifiez pas name), alors r.js traitera chaque fichier de baseUrl individuellement, et ainsi gérera chaque fichier sans concaténation. Par exemple, cette configuration triviale de construction:

{ 
    baseUrl: "js", 
    dir: "build", 
} 

provoque r.js pour traiter chaque fichier à partir js individuellement et le copier dans build après uglifying le fichier. Aucune concaténation ne se produit, peu importe le nombre de fichiers que vous avez dans js. Avec la configuration ci-dessus, r.js ne trace aucune dépendance entre les modules car il n'a pas besoin de suivre les dépendances pour faire son travail.

Cela dit, je ne voudrais pas utiliser r.js dans le but de uglifying les fichiers individuellement à moins il y avait une caractéristique supplémentaire de r.js je besoin d'utiliser. Par exemple, il peut être utile d'utiliser cjsTranslate: true pour convertir r.js modules CommonJS en AMD, et d'effectuer la modification en même temps.