Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
网页包+;Firebase:禁用对Firebase的解析_Firebase_Webpack_Webpack Style Loader - Fatal编程技术网

网页包+;Firebase:禁用对Firebase的解析

网页包+;Firebase:禁用对Firebase的解析,firebase,webpack,webpack-style-loader,Firebase,Webpack,Webpack Style Loader,我正在开发一个web应用程序,它使用Webpack捆绑模块。无论出于何种原因,在应用程序中引入Firebase都会导致Webpack抛出错误。当Webpack尝试加载Firebase模块时,会发生此错误 我如何从网页包中排除Firebase,但仍然可以打电话 从“Firebase”导入Firebase 从我的JS文件中 下面是一些错误的屏幕截图 tl;dr从babel加载程序路径中排除/node\u模块/ 您的第二张图片显示了firebase web.js:12上的错误: Uncaught

我正在开发一个web应用程序,它使用Webpack捆绑模块。无论出于何种原因,在应用程序中引入Firebase都会导致Webpack抛出错误。当Webpack尝试加载Firebase模块时,会发生此错误

我如何从网页包中排除Firebase,但仍然可以打电话

从“Firebase”导入Firebase

从我的JS文件中

下面是一些错误的屏幕截图


tl;dr从babel加载程序路径中排除
/node\u模块/


您的第二张图片显示了firebase web.js:12上的错误:

Uncaught TypeError: Cannot read property 'navigator' of undefined
不幸的是,很难说到底出了什么问题。让我们使用:

现在可以清楚地看到脚本正在尝试访问
aa.navigator
,但是
aa
是未定义的。你可以看到:

我们可以看到脚本现在正在尝试做什么:它希望
this===window
这样它就可以访问

但是为什么
这个
没有定义?这是因为,在某个时刻,脚本被放入,这导致
this===undefined
而不是
this==window
。我们可以在生成main.js的网页包中看到:

事实证明,
“use strict”
的前缀是,因此我们应该能够禁用firebase-web.js的babel loader来解决这个问题:

。。。
模块:{
装载机:[
{test:/\.jsx?$/,exclude:/node\u modules/,loader:'babel loader'}
]
}
...

很好,现在不再有
“使用严格的”
,错误不再发生


(完全披露:我参与了@kashiB正在参与的同一个项目,并且可以访问源代码。)

它可能需要全局上下文。如果不检查Firebase代码,很难说清楚。看看有什么办法可以解决。非常感谢你。。。我花了一个星期的时间试图找出window.navigator上的错误,在另一个上下文中,但使用了babel。伟大的tl;评论博士帮助了我。原来,我是这样做的:
exclude:'/node\u modules/'
。我删除了引号,一切都开始工作了。现在只要我能把这三天还给你就好了!我只使用了汇总和排除:'/node\u modules/**'
并没有解决这个问题。我不得不将
useStrict:false
添加到我的汇总配置中also@lukejacksonn
'/node\u modules/**'
错误。斜杠是正则表达式的JS分隔符。如果添加引号(
),则将其转换为常规字符串<另一方面,代码>'node\u modules'
应该可以像
/node\u modules/
一样工作。我是一个巴别塔noob。我正在做一个react本地项目,我把它放在什么文件中?
var h, aa = this;