i use webpack build react components. here jsx file:
// index.js var react = require('react'); var reactdom = require('react-dom'); var renderhellocomponnet = function(id) { reactdom.render( <h1>hello, world!</h1>, document.getelementbyid(id) ); }
then, want call function renderhellocomponnet
in html have config file webpack:
module.exports = { entry: { index: './src/index.js' }, output: { path: __dirname + '/build', filename: '[name].bundle.js', librarytarget: "var", library: ["abc"], }, resolve: { extensions: ['', '.js', '.jsx'] }, module: { loaders: [ { test: /\.jsx?$/, loader: 'babel-loader', exclude: /node_modules/, query: { presets:['react'] } } ] } }
however can't render component in html:
<!doctype html> <html> <head> <meta charset="utf-8" /> <title>hello react!</title> <script type="text/javascript" src="./build/index.bundle.js"></script> </head> <body> <div id="example"></div> <script type="text/javascript"> abc.renderhellocomponnet('example'); </script> </body> </html>
i error: typeerror: abc.renderhellocomponnet not function
what export in module.exports
in library
var. if in index.js
export renderhellocomponent
:
module.exports = renderhellocomponent;
then in abc
var you'll function:
<script type="text/javascript"> abc('example'); </script>
if want library
var have renderhellocomponent
method can export object function inside:
module.exports = { renderhellocomponent: renderhellocomponent }
then able this:
<script> abc.renderhellocomponent('example'); </script>
Comments
Post a Comment