Node.js 将浏览器兼容性降低到ie11

Node.js 将浏览器兼容性降低到ie11,node.js,reactjs,internet-explorer,cross-browser,cross-compiling,Node.js,Reactjs,Internet Explorer,Cross Browser,Cross Compiling,编译React with parcel以与浏览器Chrome、Firefox、Safari、Edge和IE兼容(10/11) 已经尝试过将babel与core js结合使用,每次加载时都会在IE 10和11上出现语法错误。已在.babelrc@babel/preset react和@babel/preset env中使用。react配置设置为编译到dom,而不是react.createElement,env设置为target ie10,useBuiltins设置为entry,并导入core js

编译React with parcel以与浏览器Chrome、Firefox、Safari、Edge和IE兼容(10/11)

已经尝试过将babel与core js结合使用,每次加载时都会在IE 10和11上出现语法错误。已在.babelrc@babel/preset react和@babel/preset env中使用。react配置设置为编译到dom,而不是react.createElement,env设置为target ie10,useBuiltins设置为entry,并导入core js

“构建:站点”:“地块构建站点/site.tsx--out dir public”,

早在三月份,发布了一个安全更新,在我工作过的所有react网站上全面解决了这个问题。其他网站也使用了同样失败的webpack

错误消息:

SCRIPT1002: Syntax error
File: site.js, Line: 1685, Column: 32
module.exports=(e=>encodeURIComponent(e).replace(/[!'()*]/g,e=>"%".concat(e.charCodeAt(0).toString(16).toUpperCase())));
可复制代码:
我无法从新应用程序中重现错误,但默认情况下,Parcel不会传输节点模块,但在需要库的某些部分时,它们仍然会被捆绑。通过切换到WebpackV4,并且不排除node_modules目录,绑定的代码以及库代码将被传输。此方法确实需要导入“core js”并使用
babel loader
。举个简单的例子:

module.exports = {
  entry: './app.js',
  modules: {
    rules: [
      {
        test: /\.m?js$/,
        use: {
          loader: 'babel-loader',
          options: {
            presets: ['@babel/preset-env']
          }
        }
      }
    ]
  },
  resolve: {
    extensions: [
      '.js',
      '.jsx'
    ]
  }
  output: {
    filename: 'app.js',
    path: './public'
  }
};

默认情况下,Parcel不传输节点模块,但在需要库的某些部分时,它们仍然会被捆绑。通过切换到WebpackV4,并且不排除node_modules目录,绑定的代码以及库代码将被传输。此方法确实需要导入“core js”并使用
babel loader
。举个简单的例子:

module.exports = {
  entry: './app.js',
  modules: {
    rules: [
      {
        test: /\.m?js$/,
        use: {
          loader: 'babel-loader',
          options: {
            presets: ['@babel/preset-env']
          }
        }
      }
    ]
  },
  resolve: {
    extensions: [
      '.js',
      '.jsx'
    ]
  }
  output: {
    filename: 'app.js',
    path: './public'
  }
};

它在细节上抛出了什么错误?你能提供一下电话号码吗?我根据中的步骤使用Parcel创建了一个React应用程序,它可以在IE11中运行良好。您也可以在另一个帖子中查看我的答案。@YuZhou我很抱歉,但我无法重现这个问题。我已经删除了minify by parcel,并且有相同的问题,只是在语法上略有不同。我试图推断它发生在哪里,并尝试了您的选项以及babels和reacts网站上的自定义选项。下面是略有不同的语法,但我不希望它有帮助
module.exports=str=>encodeURIComponent(str).replace(/[!'()*])/g,x=>“%”.concat(x.charCodeAt(0).toString(16.toUpperCase());),{}],“pWxZ”:[函数(要求、模块、导出){'use strict';
@YuZhou我能告诉你的是,显示的行是唯一使用
=>
运算符的地方,这是IE感到不安的地方。感谢你花时间研究这个问题。不客气。是的,你不能在IE中使用
=>
箭头函数而不使用垫片来处理它。这个问题由ES6功能引起的ght。请尝试
npm install core js
。您可以参考。对于延迟提供响应,很抱歉。问题是包裹没有传输节点包。这可以通过webpack v4使用babel加载程序实现,而不排除节点模块目录。这样,节点模块就可以传输d也可以,并允许站点渲染。它抛出了什么详细错误?您能提供吗?我根据中的步骤使用Parcel创建了一个React应用程序,它可以在IE11中运行良好。您也可以在另一个线程中检查我的答案。@YuZhou我很抱歉,但我无法重新创建该问题。我已删除minify done我试图推断它发生在哪里,并尝试了您的选项以及babels和React站点上的自定义选项。下面是略有不同的语法,但我不希望它有帮助。
module.exports=str=>encodeURIComponent(str).replace(/[!'()*]/g,x=>“%”.concat(x.charCodeAt(0).toString(16).toUpperCase());},{}],“pWxZ:[function(require,module,exports){'use strict';
@YuZhou我能告诉你的是,显示的行是唯一使用
=>
运算符的地方,这是IE感到不安的地方。感谢你花时间研究这个问题。不客气。是的,你不能在IE中使用
=>
箭头函数而不使用垫片来处理它。这个问题由ES6功能引起的ght。请尝试
npm install core js
。您可以参考。对于延迟提供响应,很抱歉。问题是包裹没有传输节点包。这可以通过webpack v4使用babel加载程序实现,而不排除节点模块目录。这样,节点模块就可以传输d,并允许现场进行渲染。