2017-06-07 7 views
0

Hallo Ich bekomme einen Fehler beim Ausführen von Npm run Build auf meinem Prestashop Thema und ich habe keine Ahnung, woher es kommt.SyntaxError: Unerwartetes Token: string (expose? Tether! Tether) auf npm run build

Der Fehler ist wie folgt:

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'] 
    } 
}; 

Und die Datei, die den Fehler wirft, ist die 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(); 
}); 
:

SyntaxError: Unexpected token: string (expose?Tether!tether) [./js/theme.js:25,7] 

Meine webpack.config.js sieht wie folgt aus

Webpack ist wirklich nicht mein starker Anzug und ich habe überall gesucht, aber ich kann nichts finden, das mit diesem Fehler verbunden ist.

Jede Hilfe würde sehr geschätzt werden.

Antwort

2

Ein Kollege half mir, es am Ende herauszufinden. Ich brauchte die richtige Voreinstellung auf die babel-loader Abfrage hinzuzufügen:

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

Ich glaube, das Problem ist, dass Sie nicht npm liefen installieren, nachdem Sie das Upgrade durchgeführt wird.

+0

Dies liefert keine Antwort auf die Frage. Sobald Sie genug [Reputation] (https://stackoverflow.com/help/whats-reputation) haben, können Sie [jeden Beitrag kommentieren] (https://stackoverflow.com/help/privileges/comment); Stattdessen [geben Sie Antworten, die keine Klärung durch den Fragesteller erfordern] (https://meta.stackexchange.com/questions/214173/why-doe-i-need-50-reputation-to-comment-what-can- i-do-stattdessen). - [Aus Bewertung] (/ review/low-quality-posts/18072176) –

Verwandte Themen