我正在尝试在Firebase暂存环境中运行html文件。我在js代码中使用了 Firebase npm包。但是在浏览器中运行时会抛出错误"要求未定义"。
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");
请建议我解决一下。
答案 0 :(得分:3)
您需要设置一个工具(例如webpack)来管理您的依赖项。通过这种方式,您可以直接在require
文件中import
(或.js
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。这对于具有前端支持的每个节点依赖都是有效的
答案 1 :(得分:2)
这种情况发生,因为require
上不存在client-side
。请注意,与npm
服务一样,nodeJS
个包是backend
个服务。
因此,您需要通过以下方式添加Firebase的SDK:
<script src="https://www.gstatic.com/firebasejs/3.6.1/firebase.js"></script>
然后使用您需要的配置初始化SDK。这里的设置更详细地解释:https://www.gstatic.com/firebasejs/3.6.1/firebase.js
干杯!