我在Cow.js
内有一个模块:/src/lib/
。然后在我的单元测试(/test/spec/Cow-test.js
)中,我希望能够通过import { Cow } from 'Cow';
引用它,就像我对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:babel-core@5.8.34',
'babel-runtime': 'npm:babel-runtime@5.8.34',
'chai': 'npm:chai@3.4.1',
...
...这是我的(非常小的)项目结构:
| .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
答案 0 :(得分: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