Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ReactJs+;网页包+;ie+;console.log_Javascript_Internet Explorer_Reactjs_Webpack - Fatal编程技术网

Javascript ReactJs+;网页包+;ie+;console.log

Javascript ReactJs+;网页包+;ie+;console.log,javascript,internet-explorer,reactjs,webpack,Javascript,Internet Explorer,Reactjs,Webpack,我有一个用JSX编写的项目,我使用webpack构建main.js文件 这是我的webpack.config.js: var path = require('path'); module.exports = { entry:{ main: [ 'consolelog', 'es5-shim', 'es5-shim/es5-sham', 'es6-shim', 'es6-

我有一个用JSX编写的项目,我使用webpack构建main.js文件

这是我的webpack.config.js:

var path = require('path');

module.exports = {
  entry:{  main: [
            'consolelog',
            'es5-shim',
            'es5-shim/es5-sham',
            'es6-shim',
            'es6-shim/es6-sham',
"./app/client"
        ]},

  output: {
    filename: '[name].js',
    chunkFilename: '[id].chunk.js',
    path: path.join('public', 'js'),
    publicPath: '/js/'
  },

  module: {
    loaders: [
      { test: /\.js$/, loader: 'jsx-loader?harmony&insertPragma=React.DOM' },
      { test: require.resolve('react'), loader: 'expose?React' },

    ]
  }
};
我的问题是我不能让我的项目在IE下工作(我现在用IE9测试)。 它总是说“控制台未定义”

使用Firefox和Chrome,它可以完美地工作

我做错了什么

我也尝试了控制台polyfill,但结果相同

IE9说它在以下javascript代码行失败:

_deprecationWarning2['default']('CollapsableNav', 'CollapsibleNav', 'https://github.com/react-bootstrap/react-bootstrap/issues/425#issuecomment-97110963');
但它没有console.log

我做错了什么


提前谢谢你

在不支持控制台的浏览器中,您需要从代码中删除控制台功能。对于您可以使用的网页包。一种使用方法如下:

var WebpackStrip = require('webpack-strip')
然后将
{test:/\.js$/,loader:WebpackStrip.loader('console.log','console.error')}
添加到加载程序,以剥离
console.log
console.error

{
    module: {
        loaders: [
            { test: /\.js$/, loader: 'jsx-loader?harmony&insertPragma=React.DOM' },
            { test: require.resolve('react'), loader: 'expose?React' },
            { test: /\.js$/, loader: WebpackStrip.loader('console.log', 'console.error') }
        ]
    }
};

你必须把两台装载机放在同一条线上。使用
加载器
,而不是使用
加载器
,并用两个加载器传递一个数组。

谢谢。我试过了。我将var WebpackStrip=require('webpack-strip')放在webpack.config.js中,并添加loaders行。但不幸的是,它没有起作用。奇怪的是,我仍然可以在生成的文件“main.js”中看到console.log和console.error。这怎么可能?感谢您的帮助您是否检查了网页包装条模块是否正确加载?如何检查?关于
条带加载程序
。这两个包裹之间有什么大的区别吗?编辑:哦,也许它们是同一件事…你能分享周围的代码行吗?有时,问题可能就在你所处的底线之上,也可能就在底线之下。如果在所有代码之前创建一个人造控制台对象,会发生什么
window.console=window.console |{log:function(){},error:function(){},warn:function(){}?它可以工作并继续。我将在这里复制这一行,但看起来是React工具使用了大量console.log。下一个错误是:对象不支持属性或方法'defineGetter',好的,显然是localStorage包使用了它,它没有转换。我怎样才能在webpack中自动添加它?所以我不必每次都手动操作。谢谢你的帮助