Tôi sử dụng webpack và TypeScript và có vẻ như d3-tip không thể hoạt động với webpack. Tôi gặp lỗi về các sự kiện di chuột "Uncaught TypeError: Cannot read property 'target' of null"
.d3-tip không hoạt động với webpack
Lỗi này xảy ra vì d3.event trong mô-đun d3-tip là rỗng.
tôi bao gồm các module như sau:
const d3: any = require("d3");
d3.tip = require("d3-tip");
nhưng tôi đoán rằng D3 ở đó và d3 trong module d3-tip là khác nhau và đây là nguồn gốc của vấn đề, nhưng tôi không biết làm thế nào để giải quyết nó. Trong mô-đun d3-tip ta có:
(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
var d3 = require('d3')
module.exports = factory(d3)
} else {
// Browser global.
root.d3.tip = factory(root.d3)
}
}(this, function (d3) {
...
Và nó biên dịch bởi webpack vào
function(module, exports, __webpack_require__) {
var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// d3.tip
// Copyright (c) 2013 Justin Palmer
//
// Tooltips for d3.js SVG visualizations
(function (root, factory) {
if (true) {
// AMD. Register as an anonymous module with d3 as a dependency.
!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(465)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))
} else if (typeof module === 'object' && module.exports) {
// CommonJS
var d3 = require('d3')
module.exports = factory(d3)
} else {
// Browser global.
root.d3.tip = factory(root.d3)
}
}(this, function (d3) {
...
và rõ ràng là AMD đang sử dụng. Nếu tôi có thể nhận được nhà máy của d3-tip tôi sẽ giải quyết vấn đề đó.
Bạn đang sử dụng phiên bản d3 3 hoặc 4? Tôi đang chạy vào một vấn đề tương tự bằng cách sử dụng d3 phiên bản 3 với webpack. – softweave