通过JSPM加载(自定义)模块
Load (custom) module via JSPM
我在/src/lib/
内部有一个模块:Cow.js
。然后在我的单元测试(/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
您可以在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,sheer.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
- Can用户'MediaWiki上的自定义JavaScript调用Lua模块
- 摩卡+柴+jsdom Can't加载自定义模块目录
- 如何访问npm模块抛出的自定义错误对象[error:[object object]]
- 如何测试运行 node-fluent-ffmpeg(异步模块)的自定义模块
- SugarCRM 7.5.0.1 中自定义模块的 docusign
- 使用CDN的自定义模块
- 将字段从自定义模块导入Odoo(V9)POS模块
- 要安装依赖项的自定义节点模块
- 在Drupal自定义模块中点击3次后,Drupal禁用按钮
- $injector:modulerr将自定义模块注入Angular应用程序
- NPM:将多个模块和自定义脚本与browserfy相结合
- angularjs自定义模块与$http注入
- Drupal7.x:在复杂地图的自定义模块中使用GoogleMapsJS
- 如何从自定义模块获取Magento中的字段数据
- 如何在初始功能之外以适当的 AMD 方式使用自定义 Dojo 模块
- AngularJS在自定义服务中使用角度模块
- 自定义模块:未捕获类型错误:未定义不是一个函数
- 使用 DOH 测试自定义模块
- 节点.js自定义模块
- 如何解决express.js中的“无法找到模块”(自定义模块)错误