Javascript NodeJS how-to-require模块,用于注入函数
我正在使用webpack捆绑使用d3和模块构建的可视化,但这是一个更普遍的问题-我如何要求()一个模块用函数(这里是d3.slider())修补模块(这里是d3) package.json:Javascript NodeJS how-to-require模块,用于注入函数,javascript,node.js,d3.js,webpack,Javascript,Node.js,D3.js,Webpack,我正在使用webpack捆绑使用d3和模块构建的可视化,但这是一个更普遍的问题-我如何要求()一个模块用函数(这里是d3.slider())修补模块(这里是d3) package.json: { "name": "d3_slider_error", "version": "0.0.1", "description": "", "main": "", "scripts": { "test": "echo \"Error: no test specified\" &
{
"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不是一个函数我发现了一个丑陋的解决方案,但由于没有其他问题,我将它发布在这里。我将此添加到package.json依赖项:
"script-loader": "git+ssh://git@github.com:webpack/script-loader.git"
然后在某个地方,例如在入口点(假设d3.slider位于节点_模块中):
脚本加载器在全局环境中执行脚本一次。应适用于所有类似问题、遗留脚本等。完成。这不是使用webpackWith requirejs的模块化解决方案,您将使用垫片。我对Webpack相当陌生,但似乎在Webpack中描述了requirejs的垫片。在package.json中指定为“main”的任何文件中,“然后在某处,例如在入口点”是什么意思。
require("script!d3.slider");