- 29
- 0
问题描述
开发环境用Rollup构建TS代码,将其转为ES5, 配置如下:
// rollup.config.js
import typescript from 'rollup-plugin-typescript2'
import buble from 'rollup-plugin-buble'
import babel from 'rollup-plugin-babel'
export default {
input: 'src/index.ts',
output: [
{
file: 'dist/index.js',
format: 'es',
},
],
plugins: [
typescript(),
babel({
babelrc: false,
presets: [['env', { modules: false }]],
}),
buble()
],
}
// tsconfig.js
{
"compilerOptions": {
"moduleResolution": "node",
"lib": ["es2015", "es2016", "es2017", "dom"],
"declaration": true,
"target": "es5",
"module": "es6",
"outDir": "./dist/",
"strict": true,
"esModuleInterop": true,
"experimentalDecorators": true
}
}
问题出现的环境背景及自己尝试过哪些方法
问题是,代码经过编译后,像Array.from、Map、Set这些ES6+的函数,它并没有编译成ES5的实现。
相关代码
// TS
class Greeter {
getArr(arr:number[]) {
return Array.from(new Set(arr))
}
}
const greet = new Greeter();
console.log(greet.getArr([1, 4, 2, 3, 4]))
=====
// 编译后的“ES5”
var Greeter = /** @class */ (function () {
function Greeter() {
}
Greeter.prototype.getArr = function (arr) {
// 下面这些没有被转译
return Array.from(new Set(arr));
};
return Greeter;
}());
var greet = new Greeter();
console.log(greet.getArr([1, 4, 2, 3, 4]));
你期待的结果是什么?实际看到的错误信息又是什么?
那么问题来了,配置里的babel似乎没有起什么效果,
我应该如何添加core-js之类的polyfill插件?谢谢!
0
打赏
收藏
点击回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
