我需要使用google-closure-library所以我通过npm安装了这个软件包并在我的webpack(版本3.6.0)配置文件中放置了以下代码(来自here):
module: {
rules: [
{
test: /google-closure-library\/closure\/goog\/base/,
use: [
'imports-loader?this=>{goog:{}}&goog=>this.goog',
'exports-loader?goog',
],
},
],
},
plugins: [
new webpack.ProvidePlugin({
goog: 'google-closure-library/closure/goog/base',
}),
]
如果我理解正确,现在我应该可以访问所有文件中的goog对象及其方法(由ProvidePlugin提供)。问题是需要goog.provide函数的文件返回错误“goog.provide不是函数”而console.log(goog)返回的对象没有任何原始goog方法:
{goog: {…}, COMPILED: false}
COMPILED:false
goog:
DEBUG:true
DISALLOW_TEST_ONLY_CODE:false
ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING:false
ENABLE_DEBUG_LOADER:true
LOAD_MODULE_USING_EVAL:true
LOCALE:"en"
SEAL_MODULE_EXPORTS:{}
STRICT_MODE_COMPATIBLE:false
TRANSPILE:"detect"
TRANSPILER:"transpile.js"
TRUSTED_SITE:true
defineClass:{SEAL_CLASS_INSTANCES: {…}}
我得到它(有点)工作的唯一方法是从closure-library base.js文件中导出goog并将其导入到所需的文件中 - 但是这种方法需要在所有文件中进行大量更改。
我错过了什么?我如何访问goog方法?
(我也使用VueJS,可能是问题吗?)