2016-12-06 3 views
1

Я работаю над приложением, которое должно быть запущено на корпоративной версии IE 8. Я получаю следующие ошибки в консоли: Ожидаемый идентификатор:; indexOf недоступен для объекта.Использование «transform-es3-member-expression-literals» в webpack 1.x

Для решения этого я прочитал этот вопрос на StackOverflow: Babel 6.0.20 Modules feature not work in IE8 Это предполагает

спектрально-ES3-член-выражение-литералы спектрально-ES3-недвижимость-литералы

быть добавлены. Но использование этого в webpack не упоминается ни о каком месте, а не на официальном сайте babel. Может кто подскажет, как я могу использовать его в качестве плагина для моего проекта.

Примечание: Я уже пробовал делать

var es3MemberExpressionLiterals = require('babel-plugin-transform-es3-member-expression-literals'); 
var es3PropertyLiterals = require('babel-plugin-transform-es3-property-literals'); 
plugins = [// Plugins for Webpack 
new webpack.optimize.UglifyJsPlugin({minimize: false}), 
new HtmlWebpackPlugin({ 
    template: 'index.html', // Move the index.html file... 
    minify: { // Minifying it while it is parsed using the following, self–explanatory options 
     removeComments: false, 
     collapseWhitespace: false, 
     removeRedundantAttributes: false, 
     useShortDoctype: false, 
     removeEmptyAttributes: false, 
     removeStyleLinkTypeAttributes: false, 
     keepClosingSlash: true, 
     minifyJS: false, 
     minifyCSS: true, 
     minifyURLs: false 
    } 
    }) 
new es3MemberExpressionLiterals(), 
new es3PropertyLiterals() 

]; 
+0

Вы нашли исправление? У меня такая же проблема. – Victor

ответ

0

Вопрос связывание о плагинах Бабеля, и вы пытаетесь передать их в качестве плагин WebPack. Вам нужно будет настроить Babel как загрузчик для вашего приложения и передать плагины на это. Добавьте в свою конфигурацию Webpack следующее.

module: { 
    loaders: [{ 
    loader: 'babel', 
    test: /\.js$/, 
    exclude: /node_modules/, 
    plugins: [ 
     'babel-plugin-transform-es3-member-expression-literals', 
     'babel-plugin-transform-es3-property-literals', 
    ], 
    }], 
}, 
+0

Это не сработало для меня. Есть ли другой способ сделать это? Спасибо – Victor

+0

Определить, что «не работает»? Что конкретно вы получили? Возможно, стоит задать новый вопрос. – loganfsmyth

1

Я создал demo repository on github, чтобы показать полную конфигурацию на примере.

Чтобы получить два плагинами создать .babelrc файл со следующим содержанием

{ 
    "plugins": [ 
    "transform-es3-member-expression-literals", 
    "transform-es3-property-literals" 
    ] 
} 

В стандартной конфигурации babel-loader в вашем webpack.config.js Вавилонской смотрит в .babelrc для настройки плагинов.

// webpack.config.js (partial code only) 
module: { 
    loaders: [ 
    { 
     test: /\.js$/, 
     loader: 'babel-loader', 
     exclude: /node_modules/ 
    } 
    ] 
} 

Если все настроено правильно WebPack следует преобразовать следующий код

// src/main.js 
var foo = { catch: function() {} }; 
console.log(foo.catch) 

в

// bundle.js 
/* 0 */ 
/***/ function(module, exports) { 

    var foo = { "catch": function() {} }; 
    console.log(foo["catch"]); 

/***/ } 

Смотрите также примеры для плагинов: babel-plugin-transform-es3-property-literals и babel-plugin-transform-es3-member-expression-literals.

+0

Награжден щедростью, потому что он действительно работает, как я спросил, но, боюсь, я не объяснил себя правильно. Моя проблема была чем-то другим. В любом случае, я разобрал это по-другому. Спасибо за ваши усилия! – Victor

+0

Благодарим за награду. Грустно слышать, что это не ваша настоящая проблема в конце, но я также рад, что вы нашли решение для реальной проблемы в конце. :) – dotcs

Смежные вопросы