【发布时间】:2016-05-29 00:12:16
【问题描述】:
我正在使用 webpack 捆绑使用 d3 和 d3.slider 模块构建的可视化,但这是一个更普遍的问题 - 我如何 require() 一个模块,该模块使用函数(此处为 d3)修补模块(此处为 d3 d3.slider()) ?
package.json:
{
"name": "d3_slider_error",
"version": "0.0.1",
"description": "",
"main": "",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "webpack-dev-server"
},
"dependencies": {
"d3": "^3.5.15",
"d3-slider": "git+ssh://git@github.com:MasterMaps/d3-slider.git",
"webpack": "^1.9.10",
"webpack-dev-server": "^1.9.0",
"html-webpack-plugin": "^1.5.0"
}
}
webpack.config.js:
var HtmlWebpackPlugin = require('html-webpack-plugin');
var path = require('path');
module.exports = {
entry: "./src/main.js", // APP_PATH
output: {
filename: 'main.js',
path: path.resolve('./dist') // BUILD_PATH
},
module: {
loaders: [
//
]
},
resolve: {
modulesDirectories: ['node_modules']
},
plugins: [
new HtmlWebpackPlugin({title : "d3-slider-error"})
]
};
src/main.js:
var d3 = require('d3');
require('d3.slider');
var timeSlider = d3.slider();
console.log("Done!");
此日志:TypeError: d3.slider is not a function
【问题讨论】:
-
这不是使用 webpack 的模块化解决方案
-
使用 requirejs,您将使用 shim。我对 Webpack 还很陌生,但 this 似乎描述了 Webpack 中 requirejs 的 shim 等价物。
标签: javascript node.js d3.js webpack