在Firebase中没有定义require?

时间:2016-11-30 09:19:33

标签: javascript node.js firebase

我正在尝试在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");

请建议我解决一下。

2 个答案:

答案 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

干杯!