- BabelJs 教程
- BabelJs - 首頁
- BabelJs - 概述
- BabelJs - 環境設定
- BabelJs - CLI
- BabelJs - ES6 程式碼執行
- BabelJs - 使用 Babel 6 進行專案設定
- BabelJs - 使用 Babel 7 進行專案設定
- 將 ES6 特性轉換為 ES5
- 將 ES6 模組轉換為 ES5
- 將 ES7 特性轉換為 ES5
- 將 ES8 特性轉換為 ES5
- BabelJs - Babel 外掛
- BabelJs - Babel Polyfill
- BabelJs - Babel CLI
- BabelJs - Babel 預設
- 使用 Babel 和 Webpack
- 使用 Babel 和 JSX
- 使用 Babel 和 Flow
- 使用 BabelJS 和 Gulp
- BabelJs - 示例
- BabelJs 有用資源
- BabelJs - 快速指南
- BabelJs - 有用資源
- BabelJs - 討論
BabelJS - 使用 BabelJS 和 Gulp
在本節中,我們將使用 babel 和 gulp 建立專案設定。Gulp 是一個使用 Node.js 作為平臺的任務執行器。Gulp 將執行將 JavaScript 檔案從 es6 轉換為 es5 的任務,完成後將啟動伺服器以測試更改。我們在專案設定中使用了 babel 6。如果您想切換到 babel 7,請使用@babel/babel-package-name安裝 babel 的所需包。
我們將首先使用 npm 命令建立專案並安裝所需的包以開始。
命令
npm init
我們建立了一個名為 gulpbabel 的資料夾。此外,我們將安裝 gulp 和其他所需的依賴項。
命令
npm install gulp --save-dev npm install gulp-babel --save-dev npm install gulp-connect --save-dev npm install babel-preset-env --save-dev npm install babel-core --save-dev
我們將如下所示將預設環境詳細資訊新增到.babelrc檔案中
gulpfile.js
var gulp =require('gulp');
var babel =require('gulp-babel');
var connect = require("gulp-connect");
gulp.task('build', () => {
gulp.src('src/./*.js')
.pipe(babel())
.pipe(gulp.dest('./dev'))
});
gulp.task('watch', () => {
gulp.watch('./*.js', ['build']);
});
gulp.task("connect", function () {
connect.server({
root: ".",
livereload: true
});
});
gulp.task('start', ['build', 'watch', 'connect']);
我們在 gulp 中建立了三個任務:[‘build’,’watch’,’connect’]。src 資料夾中所有可用的 js 檔案都將使用 babel 轉換為 es5,如下所示:
gulp.task('build', () => {
gulp.src('src/./*.js')
.pipe(babel())
.pipe(gulp.dest('./dev'))
});
最終更改儲存在 dev 資料夾中。Babel 使用.babelrc中的預設詳細資訊。如果您想更改為其他預設,可以在.babelrc檔案中更改詳細資訊。
現在將在 src 資料夾中使用 es6 javascript 建立一個 .js 檔案,並執行gulp start命令來執行更改。
src/main.js
class Person {
constructor(fname, lname, age, address) {
this.fname = fname;
this.lname = lname;
this.age = age;
this.address = address;
}
get fullname() {
return this.fname +"-"+this.lname;
}
}
命令:gulp start
dev/main.js
這是使用 babel 轉換的:
"use strict";
var _createClass = function () {
function defineProperties(target, props) {
for (var i = 0; i <props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ("value" in descriptor) descriptor.writable = true;
Object.defineProperty(target, descriptor.key, descriptor);
}
}
return function (Constructor, protoProps, staticProps) {
if (protoProps) defineProperties(Constructor.prototype, protoProps);
if (staticProps) defineProperties(Constructor, staticProps);
return Constructor;
};
}();
function _classCallCheck(instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
}
var Person = function () {
function Person(fname, lname, age, address) {
_classCallCheck(this, Person);
this.fname = fname;
this.lname = lname;
this.age = age;
this.address = address;
}
_createClass(Person, [{
key: "fullname",
get: function get() {
return this.fname + "-" + this.lname;
}
}]);
return Person;
}();
Index.html
這是使用轉換後的 dev/main.js完成的:
<html>
<head></head>
<body>
<script type="text/javascript" src="dev/main.js"></script>
<h1 id="displayname"></h1>
<script type="text/javascript">
var a = new Student("Siya", "Kapoor", "15", "Mumbai");
var studentdet = a.fullname;
document.getElementById("displayname").innerHTML = studentdet;
</script>
</body>
</html>
輸出
廣告