@
kaelzhang 我觉得我不关系什么协议的,我只关心运行原理。
从给出的demo来看,你的解决方案按照我比较熟悉的描述就是requirejs的CMD风格, 但是略有不同的是你将__dirname和__filename作为一个参数传递进去。这个倒是不是关键点,不过这种方式却可以简单的解决混淆的问题。这样来看 cortex 只是起了一个server然后将代码包装了一下。把cortex 比作一个简单的express都可以,所以cortex要换成requirejs也相对简单,真正的关键还是在neuron的那套上面的。
按照我的理解,neuron是模块加载,neuron-builder 是模块打包的工具。
不过这里也牵扯出几个问题:
1. 单一模块依赖的第三方模块如何与其他的模块共享,如果采用node 的方式是每个人自带自己的依赖就违反了web领域的优化,唯一命名貌似是唯一的解决方案,但是感觉好麻烦。
2. 非JS层面的依赖无法解决,component 想要解决这个问题,不知道现在解决了没有。
3. 基于前两个问题,怎么解决当前前端共享和打包的问题。
另外neuron-builder 没有针对大小写敏感来设计么?
例如:你的文件名是: c.js,但是在testcase代码里面是:var c = require("./C"); 按照这样的处理结果,如果大小写敏感,应该会直接出错,除非你测试环境都是在windows或者mac非大小写敏感的server上。非大小写敏感的server,虽然会传递script的内容过来,但在requirejs里面,c和C是两个独立的模块(尽管code是一样的)。