Angular2 + System.js - заставить все файлы загружаться локально

Я делаю приложение Angular2, и основной HTML-код такой:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8"/>
        <link rel="stylesheet" type="text/css" href="css/index.css">
        <title>App</title>
        <script src="./lib/traceur-runtime.js"></script>
        <script src="./lib/system.js"></script>
        <script src="./lib/angular2.dev.js"></script>
    </head>
    <body>

        <app></app>
        <script src="./js/bootstrap.js"></script>

    </body>
</html>

Моя цель - заставить все файлы загружаться локально. Итак, когда я поместил эти три файла в папку lib, я увидел в инспекторе сети, что он не может загрузить оттуда «[email protected]», поэтому я скачал этот файл из Интернета и поставил это в папке "lib". Потом все заработало :)

НО:

Сегодня сетевые подключения на некоторое время прекратились, и я не смог запустить проект, потому что он фактически загрузил еще два файла из сети:

https://github.jspm.io/jmcriffey/[email protected]
https://github.jspm.io/jmcriffey/[email protected]/traceur.js

Я вижу, что они определены в конце system.js.

Итак, мой вопрос: как я могу загрузить все из локальной файловой системы?


person pesho hristov    schedule 20.08.2015    source источник


Ответы (1)


Это моя установка, надеюсь, она сработает для вас

Я установил все эти пакеты через npm.

<script src="node_modules/traceur/bin/traceur-runtime.js"></script>
<script src="node_modules/systemjs/dist/system.js"></script>

<!-- alpha35 -->
<script src="node_modules/angular2/bundles/angular2.dev.js"></script>
<script src="node_modules/angular2/bundles/http.dev.js"></script>

Просто так systemjs не сможет найти ни один из файлов angular2, поэтому вам нужно добавить пути в System.config, чтобы сообщить systemjs, где находятся файлы angular2.

System.config({
    traceurOptions: {
        annotations: true,
        types: true,
        memberVariables: true
    },
    paths: {
       'angular2/*' : 'node_modules/angular2/*'
    },
    defaultJSExtensions: true // or you specify the .js
});

Это моя установка, не обязательно лучшая, но она работает для меня.

Я надеюсь, что это поможет вам.

person Eric Martinez    schedule 20.08.2015
comment
я проверю это и дам вам знать :) ... Спасибо за ответ, хотя :) - person pesho hristov; 20.08.2015
comment
Вы не решаете проблему. Мы спрашиваем - как загрузить определения из BUDLES, расположенных в локальной папке, без npm. Если вы не используете пути, карту - это работает, но если вы настроите одну из этих опций - локальные определения очищаются - person ZOXEXIVO; 11.02.2016