Webpack SyntaxError:意外标记:npm运行生成上的字符串(expose?Tether!Tether)

Webpack SyntaxError:意外标记:npm运行生成上的字符串(expose?Tether!Tether),webpack,prestashop,prestashop-1.7,Webpack,Prestashop,Prestashop 1.7,嗨,我在我的prestashop主题上运行npm run build时出错了,我不知道它是从哪里来的 错误如下: SyntaxError: Unexpected token: string (expose?Tether!tether) [./js/theme.js:25,7] 我的webpack.config.js如下所示: var webpack = require('webpack'); var path = require('path'); var ExtractTextPlugin =

嗨,我在我的prestashop主题上运行npm run build时出错了,我不知道它是从哪里来的

错误如下:

SyntaxError: Unexpected token: string (expose?Tether!tether) [./js/theme.js:25,7]
我的webpack.config.js如下所示:

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

var plugins = [];

var production = true;

if (production) {
    plugins.push(
        new webpack.optimize.UglifyJsPlugin({
            compress: {
                warnings: false
            }
        })
    );
}

plugins.push(
    new ExtractTextPlugin(
        path.join(
            '..', 'css', 'theme.css'
        )
    )
);

module.exports = {
    entry: [
        './js/theme.js'
    ],
    output: {
        path: '../assets/js',
        filename: 'theme.js'
    },
    module: {
        loaders: [{
            test: /\.js$/,
            exclude: /node_modules/,
            loaders: ['babel-loader']
        }, {
            test: /\.scss$/,
            loader: ExtractTextPlugin.extract(
                "style",
                "css?sourceMap!postcss!sass?sourceMap"
            )
        }, {
            test: /.(png|woff(2)?|eot|ttf|svg)(\?[a-z0-9=\.]+)?$/,
            loader: 'file-loader?name=../css/[hash].[ext]'
        }, {
            test: /\.css$/,
            loader: "style-loader!css-loader!postcss-loader"
        }]
    },
    postcss: function() {
        return [require('postcss-flexibility')];
    },
    externals: {
        prestashop: 'prestashop',
        $: '$',
        jquery: 'jQuery'
    },
    devtool: 'source-map',
    plugins: plugins,
    resolve: {
        extensions: ['', '.js', '.scss']
    }
};
抛出错误的文件是theme.js

import 'expose/Tether/tether';
import 'bootstrap/dist/js/bootstrap.min';
import 'flexibility';
import 'bootstrap-touchspin';

import '../css/theme';
import './responsive';
import './checkout';
import './customer';
import './listing';
import './product';
import './cart';

import DropDown from './components/drop-down';
import Form from './components/form';
import ProductMinitature from './components/product-miniature';
import ProductSelect from './components/product-select';
import TopMenu from './components/top-menu';

import prestashop from 'prestashop';
import EventEmitter from 'events';

import './lib/bootstrap-filestyle.min';
import './lib/jquery.scrollbox.min';

import './components/block-cart';

// "inherit" EventEmitter
for (var i in EventEmitter.prototype) {
  prestashop[i] = EventEmitter.prototype[i];
}

$(document).ready(() => {
  let dropDownEl = $('.js-dropdown');
  const form = new Form();
  let topMenuEl = $('.js-top-menu ul[data-depth="0"]');
  let dropDown = new DropDown(dropDownEl);
  let topMenu = new TopMenu(topMenuEl);
  let productMinitature = new ProductMinitature();
  let productSelect  = new ProductSelect();
  dropDown.init();
  form.init();
  topMenu.init();
  productMinitature.init();
  productSelect.init();
});
网页真的不是我的强项,我已经搜索了所有地方,但我找不到任何与此错误相关的东西


任何帮助都将不胜感激。

最后一位同事帮我解决了这个问题。 我需要在babel loader查询中添加正确的预设:

loaders: [{
        test: /\.js$/,
        exclude: /node_modules/,
        loader: 'babel-loader',
        query: {
            presets: ['es2015']
        }
    },

最后一位同事帮我弄明白了。 我需要在babel loader查询中添加正确的预设:

loaders: [{
        test: /\.js$/,
        exclude: /node_modules/,
        loader: 'babel-loader',
        query: {
            presets: ['es2015']
        }
    },

我认为问题在于您在执行升级后没有运行npm安装。

我认为问题在于您在执行升级后没有运行npm安装