Bunun eski bir gönderi olduğunu biliyorum, ancak web paketi komut dosyası yükleyicisinin bu durumda da yararlı olabileceğini belirtmenin faydalı olacağını düşündüm. Web paketi belgelerinden:
"script: Bir JavaScript dosyasını genel bağlamda bir kez çalıştırır (komut dosyası etiketinde olduğu gibi), gerekenler ayrıştırılmaz."
http://webpack.github.io/docs/list-of-loaders.html
https://github.com/webpack/script-loader
Bunu, JS satıcı dosyalarını ve uygulama dosyalarını bir arada birleştiren eski yapı işlemlerini taşırken özellikle yararlı buldum. Bir uyarı kelimesi, komut dosyası yükleyicinin yalnızca aşırı yükleme yoluyla çalışıyor gibi göründüğü require()
ve bir webpack.config dosyasında belirtilerek anlayabildiğim kadarıyla çalışmadığıdır. Birçoğu aşırı require
yüklemenin kötü bir uygulama olduğunu iddia etse de, satıcıyı ve uygulama komut dosyasını tek bir pakette birleştirmek ve aynı zamanda ek web paketi paketlerine takılması gerekmeyen JS Globals'ı ortaya çıkarmak için oldukça yararlı olabilir. Örneğin:
require('script!jquery-cookie/jquery.cookie');
require('script!history.js/scripts/bundled-uncompressed/html4+html5/jquery.history');
require('script!momentjs');
require('./scripts/main.js');
Bu, $ .cookie, History ve moment'i bu paketin içinde ve dışında küresel olarak kullanılabilir hale getirir ve bu satıcı kitaplıklarını main.js komut dosyasıyla ve tüm require
d dosyalarıyla .
Ayrıca, bu teknikle yararlı olan:
resolve: {
extensions: ["", ".js"],
modulesDirectories: ['node_modules', 'bower_components']
},
plugins: [
new webpack.ResolverPlugin(
new webpack.ResolverPlugin.DirectoryDescriptionFilePlugin("bower.json", ["main"])
)
]
Bower kullanan, main
her require
d libraries package.json dosyasındaki dosyaya bakacaktır . Yukarıdaki örnekte History.js main
belirtilmiş bir dosyaya sahip değildir , bu nedenle dosyanın yolu gereklidir.
new
öncewebpack.ProvidePlugin
webpack.github.io/docs/list-of-plugins.html