Системная карта js не работает

Может быть, я тупой, но система js всегда причиняет столько боли, хотя она настолько хороша, что я не хочу использовать что-либо еще.

Конфигурация моей системы js такова:

System.config({
        packages: {
            app: {
                format: 'register',
                defaultExtension: 'js'
            },
            primeng:{
                format: 'register',
                defaultExtension: 'js'
            }
        },
        map: {
          primeng: 'node_modules/primeng'
        }
    });

Primeng импортируется следующим образом:

import {Accordion} from "primeng/primeng";
import {AccordionTab} from "primeng/primeng";

Это файл ts, который компилируется в js с помощью gulp, а затем используется моим index.html.

Но в моем терминале я получаю сообщение об ошибке:

error TS2307: Cannot find module 'primeng/primeng'

Если у кого-то есть идеи, пожалуйста, решите это


person Vineet 'DEVIN' Dev    schedule 25.05.2016    source источник
comment
Это ошибка машинописного текста. Вы уверены, что компилятор может получить доступ к файлу определения primeng.d.ts?   -  person Poul Kruijt    schedule 25.05.2016
comment
Нет, как определить это в typings.json?   -  person Vineet 'DEVIN' Dev    schedule 25.05.2016
comment
Он должен найти его, когда он находится в node_modules/primeng/primeng.d.ts   -  person Poul Kruijt    schedule 25.05.2016
comment
Primeng.d.ts — это локальный файл в node_modules/primeng. Но Primeng нет на github, поэтому я не знаю, как его использовать?   -  person Vineet 'DEVIN' Dev    schedule 25.05.2016
comment
Мой текущий файл typings.json выглядит следующим образом: {ambientDependencies: {es6-shim: github:DefinitelyTyped/DefinitelyTyped/es6-shim/es6-shim.d.ts#6697d6f7dadbf5773cb40ecda35a76027e0783b2}}   -  person Vineet 'DEVIN' Dev    schedule 25.05.2016
comment
@PierreDuc - Пожалуйста, ответьте, как включить этот локальный файл .d.ts в приведенный выше typings.json.   -  person Vineet 'DEVIN' Dev    schedule 25.05.2016
comment
Я боролся с тем же самым. Я думаю, проблема в том, что разрешение модуля установлено на «узел». Что произойдет, если вы установите этот пакет как локальный модуль npm? npm install --save /path/to.file. Альтернативой было бы использование классического разрешения модуля, но я уверен, что Angular2 взорвется.   -  person Reasurria    schedule 27.05.2016
comment
Да... Я думаю, что как в typescript, так и в systemjs требуется больше гибкости и универсальности. Документация тоже не очень хороша, хотя обе библиотеки являются grt-библиотеками.   -  person Vineet 'DEVIN' Dev    schedule 27.05.2016
comment
А пока вы можете использовать бочки, чтобы сделать ваш импорт более чистым: angular.io/docs /ts/latest/glossary.html   -  person Reasurria    schedule 27.05.2016


Ответы (1)


Догадаться.

Мы должны ссылаться на определение типа в самом файле .ts компонента. Итак, в верхней части моего файла компонента я должен написать следующее:

///<reference path="../../node_modules/primeng/components/accordion/accordion.d.ts"/>
person Vineet 'DEVIN' Dev    schedule 31.05.2016