Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   декораторы es7 babel (https://javascript.ru/forum/misc/59424-dekoratory-es7-babel.html)

skrudjmakdak 10.11.2015 21:07

декораторы es7 babel
 
вот простой пример декоратора
https://www.npmjs.com/package/core-decorators#readonly

использую gulp and babel. мой package.json
{
  "name": "my-first-decorator",
  "version": "0.0.1",
  "dependencies": {
    "core-decorators": "^0.8.1"
  },
  "devDependencies": {
    "babel-plugin-transform-class-properties": "^6.0.14",
    "babel-plugin-transform-decorators": "^6.0.14",
    "babel-preset-es2015": "^6.1.2",
    "babelify": "^7.2.0",
    "browserify": "^12.0.1",
    "gulp": "^3.9.0",
    "vinyl-source-stream": "^1.1.0"
  }
}


gulpfile.js
var gulp = require('gulp');
var browserify = require('browserify');
var babelify = require('babelify');
var source = require('vinyl-source-stream');

gulp.task('default', function () {
    return browserify({entries: 'app.js', extensions: ['.js'], debug: true})
        .transform('babelify', {
            presets: ['es2015'],
            plugins: ['transform-class-properties', 'transform-decorators']
        })
        .bundle()
        .pipe(source('bundle.js'))
        .pipe(gulp.dest('dist'));
});


мое приложение:
import { readonly } from 'core-decorators';

class Meal {
  @readonly
  entree = 'steak';
}

var dinner = new Meal();
dinner.entree = 'salmon';
// Cannot assign to read only property 'entree' of [object Object]


ввожу команды в консоли
$ npm install
$ gulp


строится некий bundle.js файл и при запуске html файла, в консоль должно упасть ошибка, что свойство чисто для чтения: Cannot assign to read only property 'entree' of [object Object]
но этого не происходит, сам bundle компилится без ошибок.

ребят помогите

maxposlki 30.11.2015 14:53

добавь свойство в babel.rc

"presets": ["stage-0"]


Часовой пояс GMT +3, время: 02:18.