访问google-closure-library方法goog.require和goog.provide

时间:2018-06-15 10:23:26

标签: webpack google-closure-library

我需要使用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,可能是问题吗?)

0 个答案:

没有答案