【问题标题】:Expose global variable when using Browserify使用 Browserify 时暴露全局变量
【发布时间】:2016-09-15 02:28:25
【问题描述】:

我使用 Browserify,并希望将 D3.js 与雷达图组件一起使用。

import 'd3';
import 'radar-chart-d3';

雷达图组件返回错误Uncaught ReferenceError: d3 is not defined

我尝试使用 browserify 的 insertGlobalVars 选项:

browserify: {
    bundleName: 'main.js',
    prodSourcemap: false,
    insertGlobalVars: {
      d3: function(file, dir) {
        return 'require("d3")';
      }
    }
  }

但是,这并没有改变任何情况。 我知道我可以在雷达图 .js 文件的顶部添加 require('d3'),但我想避免这种情况。

还有什么其他方法可以将d3 变量公开到全局范围,以便其他文件可以使用d3

【问题讨论】:

  • 你使用 jshint 吗?如果是这样,您应该将 "globals": { "d3": true,} 添加到您的 .jshintrc 文件中
  • @MayK 不,我使用 ESLint。

标签: javascript angularjs d3.js browserify


【解决方案1】:

把这个放到package.json:

"eslintConfig": {
  "globals": {
    "d3": true
  }
}

【讨论】:

  • 完全一样地添加了它,但问题仍然存在:(。
  • 你有 设置吗?