繁体   English   中英

导入具有依赖性的NPM模块

[英]Import NPM module having dependency

当前切换到Meteor 1.3及其npm模块支持,我遇到了以下问题:

TypeError: Cannot set property 'tip' of undefined

这里是相关代码myFile.js

import d3 from 'd3';
import d3tip from 'd3-tip';

//...
chart.tip = d3tip()
      .attr('class', 'd3-tip')
      .offset([-10, 0])
      .html(function(d) {
         //...
      });

错误来自软件包d3-tip

(function (root, factory) {                                                                                            
  if (typeof define === 'function' && define.amd) {                                                                    
    // AMD. Register as an anonymous module with d3 as a dependency.                                                   
    define(['d3'], factory)                                                                                            
  } else if (typeof module === 'object' && module.exports) {                                                           
    // CommonJS                                                                                                        
    module.exports = function(d3) {                                                                                    
      d3.tip = factory(d3)  // HERE THE ERROR (d3 probably not defined)                                                                                           
      return d3.tip                                                                                                    
    }                                                                                                                  
  } else {                                                                                                             
    // Browser global.                                                                                                 
    root.d3.tip = factory(root.d3)                                                                                     
  }                                                                                                                    
}(this, function (d3) { //...}

我猜包d3-tip找不到d3 ,但是在myFile.js上找到了d3作为d3-tip

我应该做些什么在d3-tooltip上手动注入d3吗?

我认为你实际上必须做

import d3tip from 'd3-tip';
d3tip(d3);

将其附加到d3.tip()

出现以下问题:

import d3 from "d3";

这是解决方案:

import * as d3 from "d3";

希望对您有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM