-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(prefix): add options.prefix support #29
Conversation
before(function() { | ||
app = server(); | ||
app.use(middleware(join(fixtures, 'prefix/simple'), { | ||
prefix: 'simple' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
这里在koa可以这么用
app.use(mount('/assets/simple', middleware(dir, { prefix: 'simple' } ));
app.use(mount('/assets/b', middleware(dir, { prefix: 'b' } ));
页面中
seajs.config({
base: '/assets'
});
seajs.use('simple/index');
seajs.use('b/index');
a 组件和 b 组件的 index 分别通过 |
@sorrycc 你那种是在spm_modules下面,我这边需要的是一个目录下有两个本地开发的spm组件,现在serve-spm只能执行一次,我需要两个本地组件,同时跑在一个页面的情况 |
重新描述一下我的需求吧。 在一个路径下,有多个开发中的spm组件,页面是spm组件构成的,所以在同一个页面中会引入本地多个组件。目录结构如下
现在,我需要在page下启动server。modA和modB是两个spm组件,page是两个组件一起运行的。 那么我预览page的时候,需要同时载入modA和modB的js,假设A的入口文件是 现在我的做法是,对A通过 |
|
|
应该是有关系的,serve-spm 的原则就是线下也能保持一样的 url 访问(只是换了 host),serve-spm 增加映射规则来匹配访问 url 和下线文件。 所以详细说明下线上的请求规则吧 |
线上是modA/version/index.js这样的路径。 我现在的问题是,serve-spm只能server一个本地spm组件,如果支持多个组件的问题,现在能有解决方案吗?或者,你们只支持这种模式? |
在线上,同一个页面,我会use两个模块,比如
如何在本地开发modA和modB这两个模块?page是自动生成,肯定不能让page来写require之类的,因为page上有多少个mod是不确定的。 |
我感觉加一条 rule 就可以解决,现在的规则是所有的模块都在
而你需要指定目录,如
|
@popomore 如果可以用rules,我才懒得改代码了。我有尝试过,但是完全没有找到如何通过rules改写define包名的方法。 或者,你可以试试能否通过rules来通过我写的那个用例就行。
关健是define下不能是 |
define 的 id 应该是根据 url 请求路径返回的,我跑跑你的例子 |
}))); | ||
}); | ||
|
||
it('should support serve two spm module at the same app', function(done) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@popomore 这个是我最终使用的方式。关健是一个app下,serve多个spm组件。
现有的方案应该已经能支持多组件同时调试的。 比如这个目录结构:
不要用 mount,直接 spm-server 就是这样实现的,支持多模块同时调试,比如 |
另外,如果模块可能随时更新,也可以动态调 serve-spm 来处理。 https://github.com/spmjs/spmjs.io/blob/master/routes/docs.js#L8 |
ok,原来还能这么访问。我还以为只有spm_modules下可以这么用呢。赞 |
增加
options.prefix
支持,可以结合koa-mount,在一个server下支持多个serve-spm的运行。不过没
prefix
配置支持,那么a组件下有一个index入口文件,b组件也有一个index入口,这样就会冲突了。