Javascript Webpack在ES5中生成箭头函数

Javascript Webpack在ES5中生成箭头函数,javascript,typescript,webpack,ecma,Javascript,Typescript,Webpack,Ecma,我想使用TypeScript模块,并通过Webpack将它们捆绑起来。以下是我的配置文件: webpack.config.js: { "compilerOptions": { "module": "commonjs", "target": "es3" }, "include": ["./**/*"], "exclud

我想使用TypeScript模块,并通过Webpack将它们捆绑起来。以下是我的配置文件:

webpack.config.js:

{
  "compilerOptions": {
    "module": "commonjs",
    "target": "es3"
  },
  "include": ["./**/*"],
  "exclude": ["node_modules/**/*", "webpack.config.js"]
}
const path=require('path');
module.exports=()=>{
返回{
条目:'./index.ts',
输出:{
文件名:“bundle.js”,
path:path.resolve(uu dirname,'dist'),
},
模块:{
规则:[{
测试:/\.tsx?$/,,
使用“ts加载器”,
排除:/node_模块/,
}],
},
};
};
tsconfig.json:

{
  "compilerOptions": {
    "module": "commonjs",
    "target": "es3"
  },
  "include": ["./**/*"],
  "exclude": ["node_modules/**/*", "webpack.config.js"]
}
也许我从文件上查错了什么。其目的是在ES5(甚至更早)中生成代码。但这是我的捆绑文件:

(()=>{var n=function(n,o){console.warn(o)};n(0,0),n(0,1)})();
它有一个箭头功能,这是在ES6中添加的。我很困惑。我怎样才能摆脱它


编辑:

{
  "compilerOptions": {
    "module": "commonjs",
    "target": "es3"
  },
  "include": ["./**/*"],
  "exclude": ["node_modules/**/*", "webpack.config.js"]
}
以下是我试图编译的代码:

const func=(foo,bar:number)=>{
控制台。警告(bar);
};
func(0,0);
func(2,1);
编辑2:

{
  "compilerOptions": {
    "module": "commonjs",
    "target": "es3"
  },
  "include": ["./**/*"],
  "exclude": ["node_modules/**/*", "webpack.config.js"]
}

另外,我在生产模式下运行编译过程。(idk,也许这是有用的信息)

这就是我上周将网页升级到版本5后面临的问题

默认情况下,它将其绑定为ES6。在网页包配置中,配置
output.environment
应该可以解决此问题

编辑:网页包仅使用这些配置更改其内部用途。


它不编译模块。对于模块编译,应使用babel。

决策只是将
目标:['web','es5']
添加到您的网页包配置中


您还可以设置
目标:“es5”
,但在这种情况下,存在一些问题。至少在我没有指定“web”的情况下,TerserWebpackPlugin拒绝在生产模式下压缩文件。

是的,这正是我想要的。但我不明白我做错了什么。我添加了代码您是否按照webpack.config中的描述将目标设置为es5谢谢您的回答。网页包的版本是
5.3.2
。但是添加
environment:5
会导致错误
无效的配置对象。Webpack已使用与API架构不匹配的配置对象进行初始化。
这很奇怪,我刚刚尝试过,是的,看到了相同的错误。好的,我刚刚意识到环境选项只管理Webpack的内部使用。它不会编译您的模块。为此,您应该使用babel transformer插件。这是您仅配置网页包本身的方式。我有
ts加载程序
。它可以处理模块。此外,仅仅是摆脱箭头功能似乎是一个拐杖。因为ES6中不仅添加了箭头功能