如何修复require.确保错误Webpack,Babel6,React
How to fix require.ensure error Webpack, Babel6, React?
我试图使用require.esure为Facility.js 创建一个区块
import React, { Component } from 'react';
import { render } from 'react-dom';
class Facility extends Component {
constructor(...args) {
super(...args);
this.state = {
....
};
}
render() {
return (
<div>
....
</div>
);
}
}
export default Facility;
//Tried module.exports = Facility;
NonPatientSer.js
var Facility;
require.ensure([], function(require) { Facility = require('./Facility'); }, 'facility');
开发我可以在我的源代码中看到facility.bundle.js,但对它的调用返回未定义,这会导致错误
警告:React.createElement:type不应为null、未定义、,布尔值或数字。它应该是字符串(对于DOM元素)或ReactClass(用于复合组件)。检查的渲染方法
NonPatientSer
和
未捕获的不变量冲突:元素类型无效:应为字符串(用于内置组件)或类/函数(用于复合组件),但得到:未定义。检查的渲染方法CCD_ 2。
生产(运行-构建)
不允许加载本地资源:file:///C:/Users/.../facility.bundle.js
Webpack配置
output: {
path: path.join(__dirname, 'dist'),
filename: 'bundle.js',
publicPath: __dirname + '/',
chunkFilename: '[name].bundle.js'
},
首先,您需要修复webpack.config中的publicPath属性。您应该使用:
publicPath: '/dist/'
而是绝对路径。
其次,如果您对导出模块使用es6语法:
export default Facility;
你应该这样写你的导入代码:
require.ensure([], function(require) {
Facility = require('./Facility').default;
ReactDOM.render(<Facility/>, document.getElementById('app'));
}, 'facility');
或者只是使用commonjs语法:
module.exports = Facility;
然后
require.ensure([], function(require) {
Facility = require('./Facility');
ReactDOM.render(<Facility/>, document.getElementById('app'));
}, 'facility');
另请参阅:http://www.2ality.com/2015/12/babel-commonjs.html
更新:您可以在入口js文件中设置publicPath。例如:
entry.js
__webpack_public_path__ = '/publicPathToChunk/';
var chunk;
require.ensure([], function(require) {
chunk = require('./chunk');
}, 'chunk');
此外,您可以使用下一个技巧:
var bundleSrc = document.querySelector('[src*="bundle"]').getAttribute("src");
__webpack_public_path__ = bundleSrc.substr(0, bundleSrc.lastIndexOf("/") + 1);
相关文章:
- React重新渲染但未显示正确的组件
- React组件等待所需道具进行渲染
- React中的数据集表示
- Webpack开发服务器和React服务器端渲染
- React Redux错误页面管理
- react.js中的密钥绑定
- 如何在react js中将值从一个组件发送到另一个组件
- React Native通过Navigator将用户输入数据传递到选项卡栏IOS中的组件
- React:按键的性能提升
- 如何在react js中从一个页面导航到另一个页面
- React组件-设置页面标题
- 为react组件传递道具的最佳方式
- 如何使用带有Preact的React路由器
- 使用Jest测试React Native应用程序
- 为什么我的点击事件没有使用 react js 触发
- React 15使用空字符串删除输入值
- react组件中的绑定方法
- 是否存在React Native“;WEB代码安全防护”;
- 如何在react js中移动第二个组件
- 如何修复require.确保错误Webpack,Babel6,React