Javascript ES6(babel+;webpack)类方法中的静默错误
问题: 我使用一个网页包包来定位和传输ES6 我想在不使用try/catch块的情况下捕获错误。我怎样才能得到这个,是什么原因使异常保持沉默?这个问题不仅出现在构造函数()方法中。类的任何方法都不会出现这样的错误Javascript ES6(babel+;webpack)类方法中的静默错误,javascript,debugging,ecmascript-6,webpack,babeljs,Javascript,Debugging,Ecmascript 6,Webpack,Babeljs,问题: 我使用一个网页包包来定位和传输ES6 我想在不使用try/catch块的情况下捕获错误。我怎样才能得到这个,是什么原因使异常保持沉默?这个问题不仅出现在构造函数()方法中。类的任何方法都不会出现这样的错误 import React from 'react'; class TestComponent extends React.Component { constructor(props) { super(props); /*
import React from 'react';
class TestComponent extends React.Component {
constructor(props) {
super(props);
/*
Try/catch block works fine.
"test is not defined(…)"
*/
try {
test.fake(1);
} catch (e) {
console.error(e);
}
// Line below should theoretically throw exception but it does not
test.fake(1);
}
render() {
return <div>TEST</div>
}
}
export default TestComponent;
网页包将无法编译您的代码。当您转换上述代码时,不会出现语法问题或缺少需求,所以webpack只需通过babel运行代码并将其转换到EC5即可。您可能需要寻找一个在编译后实际执行代码的加载程序或插件。更好的办法是,将webpack与gulp或karma结合起来,得到一个完整的解决方案。我们用这样的东西 谢谢你的回复!我只是想知道为什么我片段的传输代码在控制台窗口中没有显示错误。事实上,如果我试着在()中运行这个片段,一切都很好?新建网页包。NoErrorsPlugin()。不太熟悉webpack开发服务器的内部结构
var path = require('path');
var webpack = require('webpack');
var ExtractTextPlugin = require('extract-text-webpack-plugin');
var HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
devtool: 'cheap-module-eval-source-map',
//devtool: 'eval',
entry: [
'webpack-dev-server/client?http://localhost:3000',
'webpack/hot/only-dev-server',
'./src/js/main'
],
output: {
filename: 'app.js',
path: path.join(__dirname, 'dist'),
publicPath: '/assets/'
},
plugins: [
new webpack.HotModuleReplacementPlugin(),
new webpack.NoErrorsPlugin(),
new ExtractTextPlugin('app.css', {
allChunks: true
}),
new webpack.DefinePlugin({
__DEV_TOOLS__: true
}),
new HtmlWebpackPlugin({
title: 'Redux Boilerplate',
filename: 'index.html',
template: 'index.template.html'
})
],
resolve: {
root: path.resolve('./src/js')
},
module: {
loaders: [
{
test: /\.scss$/,
loader: ExtractTextPlugin.extract('style-loader', 'css-loader!sass')
}, {
test: /\.js$/,
loaders: ['babel'],
exclude: /node_modules/
}
]
},
cssnext: {
browsers: 'last 2 versions'
}
};