2016-11-24 4 views
1

Мне нужна помощь, с этой ошибкой "webpack express Uncaught SyntaxError: Неожиданный токен <" может ли я сказать, что я делаю неправильно? WebPack и экспресс-сервер не сообщается Eny erorrs ..webpack express Uncaught SyntaxError: Неожиданный токен <

file struture: 
app 
package.json 
server.js 
webpack.config.js 
-public 
--index.html 
--bundle.js 
-node_modules 
-src 
--config.js 
--index.js 
--about 
---about.html 
--todos 
---todos.html 

webpack.config.js

var webpack = require('webpack'); 
var path = require('path'); 
module.exports = { 
    devtool: 'inline-source-map', 
    entry: ['./src'], 
    output: { 
     path: path.join(__dirname, 'public'), 
     filename: 'bundle.js' 
    }, 
    resolve: { 
     modulesDirectories: ['node_modules', 'src'], 
     extension: ['', '.js'] 
    }, 
    module: { 
     loaders: [{ 
      test: /\.js$/, 
      exclude: /node_modules/, 
      loader: 'babel', 
      query: { 
       presets: ['es2015'] 
      }}, 
     { test: /\.html$/, 
      loader: 'raw'} 
     ] 
    }, 
    devServer: { 
     hot: true, 
     proxy: { 
      '*': 'http://localhost:3000' 
     } 
    } 
}; 

index.js

import angular from 'angular'; 
import appModule from 'config'; 
angular.bootstrap(document, [appModule.name]); 

index.html

<html> 
    <head> 
     <title>MEAN ToDo App</title> 
     <base href="/"> 
    </head> 
    <body> 
     <div ui-view></div> 
     <script src="bundle.js"></script> 
    </body> 
</html> 

конфигурации .js

import angular from 'angular'; 
import uiRouter from 'angular-ui-router'; 


const app = angular.module('app', [uiRouter]); 

app.config(($stateProvider, $urlRouterProvider, $locationProvider) => { 
    $urlRouterProvider.otherwise('/'); 

    $stateProvider 
     .state('todos', { 
      url: '/', 
      template: require('todos/todos.html'), 
     }) 
     .state('about', { 
      url: '/about', 
      template: require('about/about.html') 
     }); 

    $locationProvider.html5Mode(true); 
}); 

export default app; 

server.js

var express = require('express'); 
var app = express(); 
var path = require('path'); 

var PORT = process.env.PORT || 3000; 



app.all('/*', function(req, res) { 
    res.sendFile(path.join(__dirname, 'public/index.html')); 
}); 

app.listen(PORT, function() { 
    console.log('Server running on ' + PORT); 
}); 

bundle.js

ответ

1

Проблема заключается в коде узла:

app.all('/*', function(req, res) { 
    res.sendFile(path.join(__dirname, 'public/index.html')); 
}); 

Все маршруты возвращаются index.html. Попробуйте удалить *.

0

Ваш экспресс-сервер неправильно сконфигурирован - он всегда возвращает index.html.

Попробуйте вместо этого:

app.use(express.static('/')); 

app.listen(3000, function() { 
    console.log('listening'); 
}); 

Или использовать http-server от НПМ.

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