This repository has been archived by the owner. It is now read-only.

SPM3 项目实践 #1200

Closed
sorrycc opened this Issue Feb 9, 2015 · 5 comments

Comments

Projects
None yet
5 participants
@sorrycc
Member

sorrycc commented Feb 9, 2015

SPM3 支持的构建类型有:

  • standalone - 独立运行,不依赖 seajs 等任何 loader
  • sea - 依赖 seajs 运行
  • umd - 在 standalone 的基础上,增加一层 umd wrapper

推荐使用 standalone 模式。semver 支持更好, 不用关心依赖包发布,尺寸更小、性能更快等。


项目实践

欢迎补充。

单页应用

多页应用

  • 描述:多页应用通常需要考虑多个页面之前的缓存问题,比如每个页面都会引入 jQuery,那么从性能角度看,就不需要 jQuery 能共用缓存
  • 方案:standalone + global 参数
  • 解释:global 用于把 require('jquery') 换成 window.jQuery
  • 演示:https://github.com/spmjs/examples/tree/master/common-pkg

多页应用 SeaJS 版

  • 描述:实在不舍得 seajs 的同学,可以看下这个方案,同样可以解决多个页面公用组件缓存的问题
  • 方案:sea + ignore 参数
  • 解释:ignore 用于把 seajs 模块依赖的 jquery/1.7.2/jquery.js 换成 jquery,然后通过 seajs 配置 jquery 的 alias 指定版本实现
  • 演示:https://github.com/spmjs/examples/tree/master/common-pkg-with-seajs

JS 服务提供方

  • 描述:这类需求通常需要通过 window 变量等方式暴露接口,以便使用
  • 方案: umd

其他

@sorrycc sorrycc added the discuss label Feb 9, 2015

@hotoo

This comment has been minimized.

Show comment
Hide comment
@hotoo

hotoo Feb 9, 2015

Member

都 standalone 之后,打包很慢是一个大问题。

Member

hotoo commented Feb 9, 2015

都 standalone 之后,打包很慢是一个大问题。

@sorrycc

This comment has been minimized.

Show comment
Hide comment
@sorrycc

sorrycc Feb 9, 2015

Member

standalone 目前是基于 cmd 转换之后再分析语法做的转换,需要优化,#1181

Member

sorrycc commented Feb 9, 2015

standalone 目前是基于 cmd 转换之后再分析语法做的转换,需要优化,#1181

@afc163

This comment has been minimized.

Show comment
Hide comment
@afc163

afc163 Feb 9, 2015

Member

项目应用好 prebuild ,就非常灵活了,甚至可以和 gulp 和 grunt 一起使用。

Member

afc163 commented Feb 9, 2015

项目应用好 prebuild ,就非常灵活了,甚至可以和 gulp 和 grunt 一起使用。

@nimojs

This comment has been minimized.

Show comment
Hide comment
@nimojs

nimojs Mar 16, 2015

求教服务器自动 combo 减少本地打包操作的优劣
#1227

nimojs commented Mar 16, 2015

求教服务器自动 combo 减少本地打包操作的优劣
#1227

@sorrycc sorrycc closed this Mar 23, 2015

@liveme

This comment has been minimized.

Show comment
Hide comment
@liveme

liveme Sep 18, 2015

使用sea的时候可以通过配置map来自动加时间戳,管理脚本缓存问题;现在如果用standalone方式,这个缓存问题有什么解决方案?

liveme commented Sep 18, 2015

使用sea的时候可以通过配置map来自动加时间戳,管理脚本缓存问题;现在如果用standalone方式,这个缓存问题有什么解决方案?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.