Node.js 将浏览器兼容性降低到ie11
编译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 jsNode.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
“构建:站点”:“地块构建站点/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,并允许现场进行渲染。