我有点困惑于webpack允许暴露在npm中不可用或不放入捆绑包的变量的各种方式。我能够通过使用以下方法来暴露google可视化图表脚本的全局变量google
resolve: {
extensions: ['.js', '.json'],
alias: {
'google': path.resolve(__dirname, 'vendor', 'google.js')
}
}
与之结合
plugins: [
new webpack.ProvidePlugin({
'google': 'google'
})
]
然而,查看webpack文档,还有一些其他的方式可以进行“shim”,看起来它们可能会做类似的事情。有
imports-loader
、exports-loader
和script-loader
。我知道我已经链接了文档,但我仍然觉得它们对这四个加载器应该何时使用的描述有点不清楚。此外,看看这个例子,这个
require
没有被分配给一个变量吗?它应该去哪里?这种语法的背后是什么文档?require("imports?$=jquery!./file.js")
有人能够给我提供一些这些工具应该在什么情况下使用的例子吗?
!
语法? - 1252748require()
函数,以允许内联使用加载器。这就是为什么这里有奇怪的语法require("imports?$=jquery!./file.js")
,它只是在说将$
作为jQuery
导入到file.js
中。 - ahmedelgabrirequire(....)
而不是像const module = require('module')
这样的写法吗?你能举个例子来展示如何使用内联语法吗? - 1252748require()
或import
的脚本做什么。这已经非常简单了,例如require("imports?$=jquery!./file.js")
,假设file.js
是一个依赖于jQuery作为$
的jQuery插件,那么您可以确保它获取到jQuery作为$
。 - ahmedelgabri