Транспортировка theme.js из Prestashop, выдающая «Uncaught SyntaxError: Неожиданный идентификатор» из-за импорта - PullRequest
0 голосов
/ 07 февраля 2019

У меня есть Webpack, настроенный для компиляции файлов .scss в .css и сбора всех файлов Javascript для объединения их в один файл.После сборки веб-пакета получено: «Uncaught SyntaxError: Неожиданный идентификатор» со всеми импортами, включенными в файл theme.js.Я также попытался добавить предустановку babel-es2015 в файл конфигурации, но, похоже, она не работает.Если я использую babel-cli для переноса theme.js в ES5, он переносит ES6-импорт по требованию, но тогда у меня возникают проблемы с использованием require на стороне клиента (попытался использовать require.js - не работает).

Версия веб-пакета: 1.15

Это базовая конфигурация веб-пакета для компиляции тем Prestashop, которую я использую:

var webpack = require('webpack');
var ExtractTextPlugin = require("extract-text-webpack-plugin");

var plugins = [];

plugins.push(
    new ExtractTextPlugin('../css/theme.css')
);

module.exports = [{
    // JavaScript
    entry: [
        './js/theme.js'
    ],
    output: {
        path: '../assets/js',
        filename: 'theme.js'
    },
    module: {
        loaders: [{
            test: /\.js$/,
            exclude: /node_modules/,
            loaders: ['babel-loader'],
        }]
    },
    externals: {
        prestashop: 'prestashop'
    },
    plugins: plugins,
    resolve: {
        extensions: ['', '.js']
    }
}, {
    // CSS
    entry: [
        './css/theme.scss'
    ],
    output: {
        path: '../assets/css',
        filename: 'theme.css'
    },
    module: {
        loaders: [{
            test: /\.scss$/,
            loader: ExtractTextPlugin.extract(
                "style",
                "css-loader?sourceMap!postcss!sass-loader?sourceMap"
            )
        }, {
            test: /\.styl$/,
            loader: ExtractTextPlugin.extract(
                "style",
                "css-loader?sourceMap!postcss!stylus-loader?sourceMap"
            )
        }, {
            test: /\.less$/,
            loader: ExtractTextPlugin.extract(
                "style",
                "css-loader?sourceMap!postcss!less-loader?sourceMap"
            )
        }, {
            test: /\.css$/,
            loader: ExtractTextPlugin.extract(
                'style',
                'css-loader?sourceMap!postcss-loader'
            )
        }, {
            test: /.(png|woff(2)?|eot|ttf|svg)(\?[a-z0-9=\.]+)?$/,
            loader: 'file-loader?name=../css/[hash].[ext]'
        }]
    },
    plugins: plugins,
    resolve: {
        extensions: ['', '.scss', '.styl', '.less', '.css']
    }
}];
...