Sé que esta es una publicación antigua, pero pensé que sería útil mencionar que el cargador de scripts del paquete web también puede ser útil en este caso. De los documentos del paquete web:
"script: ejecuta un archivo JavaScript una vez en el contexto global (como en la etiqueta de script), los requisitos no se analizan".
http://webpack.github.io/docs/list-of-loaders.html
https://github.com/webpack/script-loader
He encontrado esto particularmente útil al migrar procesos de compilación más antiguos que combinan archivos de proveedores JS y archivos de aplicaciones. Una advertencia es que el cargador de scripts parece funcionar solo a través de la sobrecarga require()
y no funciona hasta donde puedo decir al estar especificado en un archivo webpack.config. Aunque, muchos argumentan que la sobrecarga require
es una mala práctica, puede ser bastante útil para combinar el proveedor y el script de la aplicación en un paquete y, al mismo tiempo, exponer JS Globals que no es necesario incluir en paquetes web adicionales. Por ejemplo:
require('script!jquery-cookie/jquery.cookie');
require('script!history.js/scripts/bundled-uncompressed/html4+html5/jquery.history');
require('script!momentjs');
require('./scripts/main.js');
Esto haría que $ .cookie, History y moment estén disponibles globalmente dentro y fuera de este paquete, y agruparían estas librerías de proveedores con el script main.js y todos sus require
archivos d.
Además, es útil con esta técnica:
resolve: {
extensions: ["", ".js"],
modulesDirectories: ['node_modules', 'bower_components']
},
plugins: [
new webpack.ResolverPlugin(
new webpack.ResolverPlugin.DirectoryDescriptionFilePlugin("bower.json", ["main"])
)
]
que está usando Bower, verá el main
archivo en cada require
paquete de bibliotecas d.json. En el ejemplo anterior, History.js no tiene un main
archivo especificado, por lo que la ruta al archivo es necesaria.
new
antes dewebpack.ProvidePlugin
webpack.github.io/docs/list-of-plugins.html