要求?
我想在Firebase登台环境中运行html文件。我在js代码中使用了Firebase npm包。但是在浏览器中运行时会抛出错误“require is not defined”。要求?
HTML代码:
<html>
<body>
<h1>Hello World</h1>
</body>
<script type="text/javascript" src="./js/test.js"></script>
</html>
JS代码:
var Firebase = require('firebase');
var dataRef = new Firebase('firebase url');
console.log("Firebase : "+Firebase+" -- dataRef :: "+dataRef)
dataRef.set("Firebase Require");
请建议我一些解决方案。
你需要安装一个工具(如webpack)来管理你的依赖。通过这种方式,您可以直接在.js
文件中对require
(或import
es6 sintax)库进行操作。
一个可能的设置可能是以下几点:
在webpack.config.js
module.exports = {
entry: './index.js',
output: {
filename: 'bundle.js'
}
}
告诉的WebPack这是entry
文件您的应用程序,让它建立bundle
你。
然后在index.js
你可以使用:
import Firebase from 'firebase';
var dataRef = new Firebase('firebase url');
console.log("Firebase : "+Firebase+" -- dataRef :: "+dataRef)
dataRef.set("Firebase Require");
参考https://webpack.js.org/configuration/更完整的指南。
p.s.这对每个节点都有效依赖前端支持
你意识到这只是让他的编码体验更糟糕,因为他不明白服务器端模块之间的区别以及它们应该如何使用。但无论如何,似乎试图帮助人们,并给他们关于他们应该做什么的正确信息是毫无意义的。这些答案是动态的,复制粘贴解决方案被接受,而不是暗示用户他们必须做什么,以便他们可以自己学习。欢呼声 – Eduard
嗨@Eduard,放轻松。当然,我不能从paleolitic开始在stackoverflow上给出答案。那家伙下载了一个用于前端使用的npm包,然后他不知道“节点”之外不允许“require”。当你刚接触JavaScript时,可能会发生,他会学习,但也需要完成任务。 –
@Francescoes。我已经集成了webpack,但我在控制台中发现一个错误,说导入声明可能只出现在模块的顶层,请帮我解决,如何解决这个问题 –
出现这种情况becaure require
上不存在client-side
。请注意0包,就像nodeJS
作为服务,是backend
服务。
因此,你需要通过以下包括火力地堡的SDK:
<script src="https://www.gstatic.com/firebasejs/3.6.1/firebase.js"></script>
然后使用你所需要的配置初始化SDK。该设置是explaing这里的详细信息:https://www.gstatic.com/firebasejs/3.6.1/firebase.js
干杯!
是的这个解决方案,我知道,但它只会解决firebase.js,如果我将在我的应用程序中添加更多的其他节点模块,那么我仍然会在Firebase托管中获取要求未定义错误 –
@DeeptimanPattnaik您需要了解服务器端和客户端之间存在差异。毕竟,你为什么需要使用nodeJS?您可以简单地添加Firebase的SDK,就像该链接在您桌面上的index.html文件中显示的那样,并且您拥有它。 Npm包,以及与NodeJS有关的所有内容都与后端处理有关,就像你在PHP中有任何经验一样。您可以在app.js/test.js或w/e文件中处理数据,然后输出该路线的答案,或将某些数据保存在某个数据库中。您不能在客户端使用require,除非您运行webpack或其他 – Eduard
我的关注点不仅在Firebase中,我的Web应用程序中包含Firebase以及其他节点模块,并且我试图在Firebase中托管,因此会造成问题我 –
是'JS代码'你的'test.js'文件吗? –
是的,这是test.js文件 –
require在Web API中不存在,它不是由任何浏览器实现的。如果你想直接导入npm前端包,你可以考虑使用如https://webpack.js.org/get-started/install-webpack/这样的工具 –