8000 发布 Sea.js 2.3.0 · Issue #1228 · seajs/seajs · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

发布 Sea.js 2.3.0 #1228

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

Closed
army8735 opened this issue Jun 10, 2014 · 80 comments
Closed

发布 Sea.js 2.3.0 #1228

army8735 opened this issue Jun 10, 2014 · 80 comments
Assignees

Comments

@army8735
Copy link
Member

对当前页面的模块和模块关系感到混乱?模块依赖图插件轻松一点让你一目了然!

preview

只需在chrome上安装一个插件,就可以绘制出有向图,模块根路径、列表、名称、依赖关系尽收眼底。

相对于上个版本,Sea.js的体积又有进一步缩减,这一切归功于将css功能部分提取出作为一个插件存在。

  • Sea.js 2.2

    sea-debug.js 20,671 bytes
    sea.js 6,769 bytes
    gzip 3.0 KB
    LOC 947

  • Sea.js 2.3

    sea-debug.js 18,177 bytes
    sea.js 6,064 bytes
    gzip 2.8 KB
    LOC 846

测试用例增加到了505个!这一切都保障了Sea.js拥有十分强大的健壮性。

下载更新

推荐使用 spm

spm install seajs
npm install seajs

BUG 修复

移除特性

  • 去掉css支持,推荐link标签同步引入。如果实在要用,可以用seajs-css插件来完成。
  • preload移除,推荐script标签同步引入。如果实在要用,可以用seajs-preload插件来完成。
  • 去掉根据 sea.js 路径自动猜测 base 路径的功能。交给用户自己配置。
  • CommonJS规范书写,这其实是spm3的功能:spm3 发布日志 spmjs/spm#819

http://spmjs.io

改进增强

插件目前分为2种:1是seajs插件,以seajs-xxx形式命名;2是开发者工具,以seaxxx命名。

其它调整

有任何问题,欢迎反馈。

@army8735 army8735 self-assigned this Jun 10, 2014
@sorrycc
Copy link
sorrycc commented Jun 10, 2014

👍

1 similar comment
@afc163
Copy link
Member
afc163 commented Jun 10, 2014

👍

@SMbey0nd
Copy link

👍

@lifesinger
Copy link
Member

赞 army,越来越好了。

@fengmk2
Copy link
fengmk2 commented Jun 11, 2014

💯

@TomHuangCN
Copy link

果然把css拿掉了。。。那种没样式HTML,闪一下再出样式的感觉真心受不了的。

@tonyc726
Copy link

👍

@billwing
Copy link

看着看着,就不见了发布 Sea.js 2.2.0的issue,这里记录下~
#1123
或者看官网的下载

@popomore
Copy link
Member

可以去 release 找 https://github.com/seajs/seajs/releases/tag/2.2.0

@billwing
Copy link

好,明白

@stoneChen
Copy link

@army8735
preload 功能使用同步script代替,貌似只对json,es5-safe这样的模块有用吧?
比如,我想在use任何模块前,对jquery做一些扩展,且后续模块不需要显式require,用同步script引入不生效,factory不执行,而原来的preload可以执行factory.有什么好办法么?
我现在能想到的只能是,像下面这样:

//layout头部
window.prepare = function(callback){
    seajs.use('jquery-extend',function(){
        callback();
    })
}
//具体页面1
prepare(function(){
    seajs.use('business1');
})
//具体页面2
prepare(function(){
    seajs.use('business2');
})

这样的代码看起来很不舒服...

@yanyinxi
Copy link

请问:@army8735 只需在chrome上安装一个插件,就可以绘制出有向图,模块根路径、列表、名称、依赖关系尽收眼底。

需要什么插件?怎么用? 才能画出有向图

@tiye
Copy link
tiye commented Jun 11, 2014 8000

所谓英文文档.. 只是把首页和目录改成英文..

@army8735
Copy link
Member Author

@stoneChen
可以写一个extend模块依赖jq,然后其他引用jq的地方依赖extend。也可以直接修改jq

@army8735
Copy link
Member Author

@yanyinxi
https://github.com/seajs/seamap
chrome插件

@huahua2
Copy link
huahua2 commented Jun 11, 2014

👍

@nuintun
Copy link

@army8735 CSS插件的实现方式很蛋疼,囧,util-request-css.js既然已经整合到seajs-css中了那么seajs/src中的就可以干掉了~

@yorkie
Copy link
yorkie commented Jun 11, 2014

+1

@stoneChen
Copy link

@army8735
我曾经像你说的这么干过...感觉不爽,几乎每个文件都require这个extend模块,很重复的感觉,我希望这个扩展对具体的业务模块是透明的,直接就能用.

也许这个问题属于个人强迫症吧,还是谢谢你的建议.
能不能顺带帮我解决一下这个问题?
seajs/seajs-combo#14

@army8735
Copy link
Member Author

那就直接改jquery就是了

@zhishaofei3
Copy link

preload移除,推荐script标签同步引入。

是不是不能用preload:[]了?而是把我以前包的js去掉define(function (require, exports, module) {}

再script标签导入?

@army8735
Copy link
Member Author

不需要去define

@shrek82
Copy link
shrek82 commented Jun 12, 2014

seajs.config定义的模块路径貌似不再以seajs.config.js文件的相对路径去查找,而是以seajs.js的文件依据。

@afc163
Copy link
Member
afc163 commented Jun 12, 2014

一直是根据 base 定义的路径去找。

@zhishaofei3
Copy link

script type="text/javascript" src="/js/sea-modules/seajs/2.3.0/dist/sea.js" id="seajsnode"
script type="text/javascript" src="/js/JqueryMedia/jquery.media.js"
script type="text/javascript" src="/js/JqueryMedia/jquery.metadata.js"
script type="text/javascript"
seajs.config({
base: "/js/sea-modules/",
alias: {
"jquery": "jquery/jquery/1.10.1/jquery",
"base": "./base"
}
// },
// preload:[
// "",
// ""
// ]
});
seajs.use("/js/newDetail_main");
/script

这里貌似不能输入html标签 我就以script代替script标签
我把jquery.media.js和jquery.metadata.js放到script里了 放那里行吗? 怎么我最后用jquery的时候 还是提示$('a.media').media(); 这里 undefined is not a function

@tom-wang
Copy link

chrome插件名是什么?

@tom-wang
Copy link

找到了,没看仔细

@johneyson
Copy link

我已经发给您了,您有空时候看一下~~

@johneyson
Copy link

辛苦您了,您有空把解决的办法发我邮箱吧,谢谢大师

@378042954
Copy link

大师们,这个是什么错误啊。
node -v v0.10.29
执行 spm build
NODE_PATH=C:\Users\Administrator\AppData\Roaming\npm\node_modules

   start: build hello@1.0.0

arguments: dest = dist
arguments: cwd = $CWD
arguments: include = relative
arguments: ignore =
arguments: idleading = {{name}}/{{version}}
arguments: install = true
package: analyse infomation
error: $CWD\main.js not found

@afc163
Copy link
Member
afc163 commented Jul 1, 2014

main.js 不存在?

@flyfinec
Copy link
flyfinec commented Jul 1, 2014

升级把preload移除了,同感 A3E2 很蛮横,这功能可以并行加载资源,挺实用呀,也是属于加载的基本功能,不知道为啥砍掉
换成插件,又得集成,所有调用者都得改,还不知道稳不稳定(之前把seajs.log移除了,替换了一个功能不全的版本)

@akfish
Copy link
Contributor
akfish commented Jul 26, 2014

seajs-preload和seajs-css都不能用?
preload直接没反应,css报错。

<script src="sea-modules/seajs/2.3.0/dist/sea.js"></script>
<script src="sea-modules/seajs-css/1.0.2/dist/seajs-css.js"></script>

<script>
seajs.config({/*..*/});

seajs.use("/style/main.css");
</script>

console里报错:

Failed to load resource: the server responded with a status of 404 (File not found) http://localhost:8000/style/main.css.js

@akfish
Copy link
Contributor
akfish commented Jul 26, 2014

好吧,是spm安装的,上面还是1.0.2,手动clone 1.0.3的能用。。。

@jjh2006307
Copy link

@army8735 大师,你好。
我使用seajs2.3.0和seajs-css插件,发现在联想a788t手机的webview中存在模块依赖css文件时,不执行回调方法的问题。具体情况与
#1073
一样。手机的userAgent为:
lenovo-a788t_td/s100 linux/3.4.39 android/4.3 release/08.15.2013 browser/applewebkit534.30 mobile safari/534.30
现通过修改isOldWebKit的正则表达式为
/.(?:AppleWebKit|AndroidWebKit)/?(\d+)./i
暂时得以解决,但不确定会不会存在一些手机的userAgent更加特殊

@yunfour
Copy link
yunfour commented Aug 8, 2014

seajs中提取依赖的正则表达式好牛逼,就是看不懂什么意思,玉伯能否解释一下,学习学习
var REQUIRE_RE = /"(?:"|[^"])"|'(?:'|[^'])'|/[\S\s]?_/|/(?:\/|[^/\r\n])+/(?=[^\/])|//.|.\s_require|(?:^|[^$])\brequire\s_(\s_(["'])(.+?)\1\s)/g

@afc163
Copy link
Member
afc163 commented Aug 8, 2014

#478

@army8735
Copy link
Member Author
army8735 commented Aug 9, 2014

那个正则新版里面改过了

var isOldWebKit = +navigator.userAgent
  .replace(/.*(?:AppleWebKit|AndroidWebKit)\/(\d+).*/, "$1") < 536

@daemonchen
Copy link

2014-08-12 4 55 43

seamap的图好乱

@jjh2006307
Copy link

@army8735 现在就是在2.3.0这个版本出现问题,
var isOldWebKit = +navigator.userAgent
.replace(/.(?:AppleWebKit|AndroidWebKit)/(\d+)./, "$1") < 536
这个正则匹配不到
lenovo-a788t_td/s100 linux/3.4.39 android/4.3 release/08.15.2013 browser/applewebkit534.30 mobile safari/534.30
一个是大小写问题,一个是webkit类型和版本号之间有没“/”

@army8735
Copy link
Member Author

@daemonchen url给个,记得是自适应的

@daemonchen
Copy link

@army8735
Copy link
Member Author

@daemonchen 绘图库有点问题,多了就挤到一起了,郁闷

@wuww5511
Copy link

我遇到一个很奇葩的问题!
用require去加载模块的时候,如果这样加载require('index')就可以正常返回导出的对象,如果把模块名放到变量里,就会返回null或者undefined。
像这样
var path="index",
o=require(path);
console.log(o);
输出的是undefined

@zhishaofei3
Copy link

@wuww5511
使用直接量

require 的参数值 必须 是字符串直接量。

// 错误!
require(myModule);

// 错误!
require("my-" + "module");

// 错误!
require("MY-MODULE".toLowerCase());

// 正确!
require("my-module");

@jxbb
Copy link
jxbb commented Jan 28, 2015

一直用1.3.1版本,升级到2.3.0后 grunt压缩合并的js文件突然不能用了

@huixisheng
Copy link

怎么后面release的版本还是 2.2.* 的?

@xgqfrms
Copy link
xgqfrms commented Dec 14, 2015

Sea.js 3.0.0 稳定吗?

@whishtlee
Copy link

怎么下载

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

0