2016-06-27 3 views
0

nodejsを使用して、私のangularjs2プロジェクトをローカルで実行しようとしています。私はnpm startを使用して実行できますが、ノードapp.jsを使用して動作させる必要があります。Uncaught SyntaxError:ローカルでnodejsを使用するAngularJS2で予期しないトークン<

問題は、 "systemjs.config.js:1 Uncaught SyntaxError:Unexpected token <"というエラーが発生することです。私はこの問題をデバッグするためにsystemjsに慣れていないので、この問題がどこで発生しているのかわかりません。

ありがとうございます。ここで

index.htmlを

<!DOCTYPE html> 
<html> 
<head> 
    <title>Fischer Hopkins</title> 
    <meta charset="UTF-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 

    <base href="."> 

    <link href='https://fonts.googleapis.com/css?family=Varela+Round' rel='stylesheet' type='text/css'> 
    <link rel="stylesheet" href="stylesheets/normalize.css"> 
    <link rel="stylesheet" href="stylesheets/custom-material.css" type="text/css"> 
    <link rel="stylesheet" href="stylesheets/screen.css" media="screen, projection" type="text/css"> 

    <!-- 1. Load libraries --> 
     <!-- Polyfill(s) for older browsers --> 
    <script src="/core-js/client/shim.min.js"></script> 
    <script src="/zone.js/dist/zone.js"></script> 
    <script src="/reflect-metadata/Reflect.js"></script> 
    <script src="/systemjs/dist/system.src.js"></script> 
    <!-- 2. Configure SystemJS --> 
    <script src="systemjs.config.js"></script> 
    <script> 
     System.import('app/main').catch(function(err){ 
      console.error(err); 
     }); 
    </script> 
</head> 
<!-- 3. Display the application --> 
<body> 
     <c-main>Loading...</c-main> 
</body> 

app.js

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

app.use(express.static(path.join(__dirname, '/app'))); 
app.use(express.static(path.join(__dirname, '/node_modules'))); 

app.use('/*', function(req, res) 
{ 
    res.sendFile(__dirname + '/index.html'); 
}); 

var portVar = process.env.PORT || 3000; 
app.set('port', portVar); 

var server = app.listen(app.get('port'), function() { 
    var port = server.address().port; 
    console.log('Listening on port: ' + port); 
}); 

私systemjs.config.jsです:

/** 
* System configuration for Angular 2 samples 
* Adjust as necessary for your application needs. 
*/ 
(function(global) { 
    // map tells the System loader where to look for things 
    var map = { 
     'app':      'app', // 'dist', 
     '@angular':     'node_modules/@angular', 
     'angular2-in-memory-web-api': 'node_modules/angular2-in-memory-web-api', 
     'rxjs':      'node_modules/rxjs' 
    }; 
    // packages tells the System loader how to load when no filename and/or no extension 
    var packages = { 
     'app':      { main: 'main.js', defaultExtension: 'js' }, 
     'rxjs':      { defaultExtension: 'js' }, 
     'angular2-in-memory-web-api': { main: 'index.js', defaultExtension: 'js' }, 
    }; 
    var ngPackageNames = [ 
     'common', 
     'compiler', 
     'core', 
     'forms', 
     'http', 
     'platform-browser', 
     'platform-browser-dynamic', 
     'router', 
     'router-deprecated', 
     'upgrade', 
    ]; 
    // Individual files (~300 requests): 
    function packIndex(pkgName) { 
     packages['@angular/'+pkgName] = { main: 'index.js', defaultExtension: 'js' }; 
    } 
    // Bundled (~40 requests): 
    function packUmd(pkgName) { 
     if (pkgName == "router") { 
      packages['@angular/' + pkgName] = { main: 'index.js', defaultExtension: 'js' }; 
     } else { 
      packages['@angular/' + pkgName] = { main: 'bundles/' + pkgName + '.umd.js', defaultExtension: 'js' }; 
     } 
    } 
    // Most environments should use UMD; some (Karma) need the individual index files 
    var setPackageConfig = System.packageWithIndex ? packIndex : packUmd; 
    // Add package entries for angular packages 
    ngPackageNames.forEach(setPackageConfig); 
    var config = { 
     map: map, 
     packages: packages 
    }; 
    System.config(config); 
})(this); 

ファイル構造:

|-app 
    |-main.ts 
| 
|-app.js 
|-index.html 
|-package.json 
|-tsconfig.json 
|-typings.json 
|-systemjs.config.js 
+0

あなたの 'systemjs.config.js'ファイルを表示してください。それはどこにありますか? – acdcjunior

答えて

0

エラーは言う:

systemjs.config.js:1 Uncaught SyntaxError: Unexpected token < 

systemjs.config.jsファイルが有効なJavaScriptではありません。

これは通常、サーバーがJSの代わりにHTML(<で始まる)を返したためです(おそらく、スクリプトではなく404ページ)。

URLを手動で入力してください(アドレスバーにルートURLを付けてsystemjs.config.jsを追加してください)。先頭のスラッシュ(/)、または完全なURLがないことを確認してください。

+0

私は '/systemjs.config.js'を試しましたが、うまくいきませんでした。私は './systemjs.config.js'を試したが、うまくいかなかった。どちらも正しいファイルの場所を指しています。違いを生むかもしれないことを私が試すことができるものが何であるかは分かりません。 – matt2405

+0

あなたは**上記の**のようにフルアドレスでアドレスバーを指すと、正しいJavascriptファイルが表示されることを意味しますか? – slezica

+0

いいえ、それでもエラーが発生します。私がlocalhost:3000/systemjs.config.jsを置くとエラーが発生し、ファイルを表示しません。 – matt2405

関連する問題