Eu sei que este é um post antigo, mas achei que seria útil mencionar que o carregador de script do webpack também pode ser útil neste caso. Dos documentos do webpack:
"script: executa um arquivo JavaScript uma vez no contexto global (como na tag de script), requer que não sejam analisados."
http://webpack.github.io/docs/list-of-loaders.html
https://github.com/webpack/script-loader
Achei isso particularmente útil ao migrar processos de construção mais antigos que concatam arquivos de fornecedores JS e arquivos de aplicativos. Uma palavra de advertência é que o carregador de script parece funcionar apenas com sobrecarga require()
e não funciona, pelo que posso dizer, sendo especificado em um arquivo webpack.config. Embora muitos argumentem que a sobrecarga require
é uma prática ruim, pode ser bastante útil para conciliar o fornecedor e o script do aplicativo em um pacote e, ao mesmo tempo, expor JS Globals que não precisam ser reduzidos em pacotes de webpack adicionais. Por exemplo:
require('script!jquery-cookie/jquery.cookie');
require('script!history.js/scripts/bundled-uncompressed/html4+html5/jquery.history');
require('script!momentjs');
require('./scripts/main.js');
Isso tornaria $ .cookie, History e moment globalmente disponíveis dentro e fora deste pacote e agruparia essas bibliotecas de fornecedores com o script main.js e todos os seus require
arquivos d.
Além disso, é útil com 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 o Bower, examinará o main
arquivo em cada require
d bibliotecas package.json. No exemplo acima, History.js não tem um main
arquivo especificado, portanto, o caminho para o arquivo é necessário.
new
antes dewebpack.ProvidePlugin
webpack.github.io/docs/list-of-plugins.html