2015-12-21 1 views
3

У меня есть модуль: Cow.js внутри /src/lib/. Затем в моем модульном тесте (/test/spec/Cow-test.js) я хочу, чтобы иметь возможность ссылаться на него через import { Cow } from 'Cow';, как и со всеми зависимостями/библиотеками, импортированными JSPM.Загрузка (пользовательский) модуль через JSPM

Проблема в том, что я должен сделать это как import { Cow } from '../../src/lib/Cow';, указав путь.

Есть ли способ сделать это так, как я прошу, не беспокоясь, где я и где находится модуль?

Причина этого заключается в следующем: я могу перемещать/реорганизовывать модули в любое место, и путь должен находиться в одном месте (например, в конфигурационном файле JSPM), а не везде, где я ссылаюсь на них.

Любые подсказки?

PS: Я могу использовать любой исходный код: классы/модули.

Это часть моего файла JSPM конфигурации:

System.config({ 
    baseURL: '', 
    defaultJSExtensions: true, 
    transpiler: 'babel', 
    babelOptions: { 
    'optional': ['runtime', 'optimisation.modules.system'] 
    }, 
    paths: { 
    '*': '*.js', 
    'github:*': 'jspm_packages/github/*', 
    'npm:*': 'jspm_packages/npm/*' 
    }, 
    map: { 
    'babel': 'npm:[email protected]', 
    'babel-runtime': 'npm:[email protected]', 
    'chai': 'npm:[email protected]', 
... 

... и это мой (очень маленькая) структура проекта:

| .babelrc 
| config.js 
| gulpfile.babel.js 
| karma.conf.js 
| package.json 
| 
+---jspm_packages/ 
| 
+---node_modules/ 
| 
+---src 
| | bootstrap.js 
| | main.js 
| | 
| \---lib 
|   Cow.js 
| 
\---test 
    | 
    \---spec 
      Cow-test.js 

ответ

1

Вы можете использовать объявление пакета в конфиге файл JSPM.

Например, вы можете объявить пакет Cow, а затем импортировать его, используя: import Cow from 'Cow';.

Смотрите документацию здесь:
- https://github.com/jspm/registry/wiki/Configuring-Packages-for-jspm
- https://github.com/systemjs/systemjs/blob/master/docs/config-api.md#packages


Вы также можете определить путь к папке внутри конфигурационного файла JSPM.
Скажите, что у вас есть папка lib/, и у вас есть файлы (cow.js, sheep.js ...), вы можете импортировать этот путь: import cow from 'lib/cow.js'.

Внутри config.json:

{ 
    ... 
    "path": { 
     "lib/": "src/lib/" 
    }, 
    ... 
} 

См документации здесь: https://github.com/systemjs/systemjs/blob/master/docs/config-api.md#paths

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

  • Нет связанных вопросов^_^