TIJ*_*TIJ 14 javascript ecmascript-6 gulp babeljs
我正在使用babel和gulp,并在ES6中创建一个简单的DOM库.但是在运行之后,当我要使用它时,我得到了Object.assign is not a function
Chrome控制台.
这是gulp代码
gulp.task('scripts', function() {
return gulp.src(src + 'js/*.js')
.pipe(babel())
.pipe(concat('main.js'))
.pipe(gulp.dest(dest + 'js'));
});
Run Code Online (Sandbox Code Playgroud)
这是类文件
class DOM {
constructor( selector ) {
var elements = document.querySelectorAll(selector);
this.length = elements.length;
Object.assign(this, elements);
}
...
}
const dom = selector => new DOM(selector);
Run Code Online (Sandbox Code Playgroud)
我正在客户端使用它 dom('#elId');
Jac*_*din 27
我怀疑你已经知道,谷歌Chrome使用V8,它支持ECMAScript第5版.Object.assign
在ECMAScript第6版中介绍.
要使用这些添加物,您需要包含 Babel提供的ES6填充物:
这将模拟完整的ES6环境.[...]
可从npm版本中的
browser-polyfill.js
文件中获取babel-core
.这需要包含在所有编译的Babel代码之前.您可以将其添加到已编译的代码中,也可以将其包含在<script>
之前的代码中.
Amo*_* Wu 12
babel-core
:$ npm install babel-core --save-dev
polyfill
模块导入您的js:import 'babel-core/polyfill';