【问题标题】:ReferenceError: require is not defined - browserify - generator-angularReferenceError: 要求未定义 - browserify - generator-angular
【发布时间】:2016-11-09 03:12:03
【问题描述】:

我正在尝试使用node-geocoder,它使用require,所以我通过sudo npm install -g browserify 安装browserify,我想我被browserify <some_file>.js -o src/assets/bundle.js 捆绑所有。我不确定我应该选择哪个文件,所以我选择了我想使用的文件node-geocoder (create.controller.js) 最后我将<script src="bundle.js"></script> 添加到我的index.html 但我仍然收到 ReferenceError

angular.js:13550 ReferenceError: require is not defined
    at new CreateController 

create.controller.js

(function () {
  'use strict';

  angular
    .module('untitled')
    .controller('CreateController', CreateController);

  /** @ngInject */
  function CreateController($http, $log) {

    var NodeGeocoder = require('node-geocoder');

    var options = {
      provider: 'google',
      httpAdapter: 'https', // Default
      apiKey: 'myApiKey',
      formatter: 'string'
    };

    var geocoder = NodeGeocoder(options);


    geocoder.geocode('29 champs elysée paris')
      .then(function(res) {
        console.log(res);
      })
      .catch(function(err) {
        console.log(err);
      });

我使用generator-angular 我是 JS 和所有这些框架的新手,所以我希望我发布了所有需要的信息。

【问题讨论】:

  • 所以 browserify 的入口点应该是第一个开始需要依赖的文件。我不确定你的项目的其余部分是如何设置的,但我不认为你只能在一个控制器上使用 browserify 并通过脚本标签包含它并期望它与你的应用程序的其余部分一起工作,而这些部分没有使用 browserify .还要查看 node-geocoder 模块,它并没有说明它在客户端工作,所以即使你让它工作,该模块也可能依赖于仅在 Node 中可用的东西。
  • 这是非常重要的信息,有些插件无法在客户端运行。我想我只是要寻找其他插件或只使用普通的谷歌地理编码器。现在我认为我缺乏这样做的经验。
  • @JakubPomykała 在本地安装 browserify 模块而不是全局 (-g) --> stackoverflow.com/questions/35992104/…

标签: javascript angularjs npm yeoman-generator-angular


【解决方案1】:

Require() 不是客户端 JavaScript 中的有效函数。 尝试使用 RequireJS (http://requirejs.org/docs/download.html)

有关 RequireJS 的 API 的帮助,http://requirejs.org/docs/api.html

【讨论】:

  • require() 在像他一样使用 browserify 时将在客户端工作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-06-12
  • 2021-11-08
  • 2018-03-01
  • 1970-01-01
  • 2023-03-13
  • 2017-10-21
  • 2023-03-10
相关资源
最近更新 更多