网页包+;Firebase:禁用对Firebase的解析
我正在开发一个web应用程序,它使用Webpack捆绑模块。无论出于何种原因,在应用程序中引入Firebase都会导致Webpack抛出错误。当Webpack尝试加载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
从“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;