1、简介

  • JavaScript 模块的写法有几种,比如 AMD,CommonJS .. 还有标准化的 ES6 的写法 .. jspm 支持加载所有的用这些方法写的 JavaScript 模块
  • 在你的应用里,现在就可以使用 ES6 提供的标准写法 .. 至于怎么去载入模块可以交给 jspm 去处理 .. 也就是你只需要了解 ES6 的模块写法 ..
  • jspm 还是一个为浏览器上用的东西准备的一个包管理 .. 比如它可以让你去从不同的源去安装不同的包 .. 默认的源有 npm ,还有 github .. 安装好你需要的包以后,在你的代码里,只需要一行代码,就可以使用这些包提供的功能 .. 不用担心其它的事情 . .
  • 在开发的时候,jspm 可以使用 Traceur 或者 Babel ,实时的在浏览器上编译 JavaScript ,把 es6 的代码编译成 es5 的代码 ..
  • 在正式发布应用的时候,可以优化创建的模块,把模块依赖的东西打成一个包

2、安装jspm

    npm install jspm -g 在全局范围安装jspm,就可以在任何地方使用jspm命令了
jspm // 完成后输入jspm,会返回一些帮组信息
cd ~/desktop
mkdir reactProject // 创建项目文件夹
cd reactProject
npm init // 创建package.json,一路回车即可
ls // 查看文件夹,就会一个package.json文件
npm install jspm --save-dev // 把 jspm添加到项目开发依赖
ls // node_modules package.json两个文件
jspm init // 为jspm创建配置文件config.js, 一系列问题,可一路回车
ls // 会发现有config.js , jspm_packages(jspm安装的一些包) node_modules package.json

3、安装包 jspm install

jspm install jquery=github:components/jquery
jspm uninstall jquery

4、使用ES6模块, BrowserSync 使用

 1. npm install -g browser-sync // 安装Node后,通过npm安装BrowserSync(自动刷新)
2. 使用BrowserSync: browser-sync start --server 开启服务 browser-sync start --server --no-notify --files 'index.html, app/**/*.js' 

5、打包bundle 功能

  • 打开浏览器的开发者工具 .. 再打开 network 这个选项卡 .. 在这里你会看到被下载的一些东西 .. 这里有挺多 js 文件 .. main.js .. fruit.js ,jquery.js 等等 ..
  • jspm 支持 bundle,也就是打包的功能,就是把一些资源打包成一个东西 .. 比如下面我们去把 main.js 这个模块打包成一个东西 ..
  • 打包用的是 jspm bundle 命令

    进入项目目录
    jspm bundle app/main app/build.js // 将app文件夹下的main.js里面的js都打包到build.js中
    完成以后,会在 app 目录下面创建一个叫 build.js 的文件 .. 回到编辑器 .. 用一个 script 标签 .. 把 app 下的 build.js 嵌入进来 .. 保存 ..
    再回到浏览器 .. 在 network 这个选项卡里,会少了很多 js 文件,因为我们把它们打成了一个包 .. 就是这个 build.js ..
  • 没有打包

html_nobundle.png

bundle.png

js_noBundle.png
    • 打包

      build.png

      js_bundle.png

jspm的更多相关文章

  1. jspm 是浏览器包管理工具

    jspm 是浏览器包管理工具. jspm 是 SystemJS 通用模块加载器的包管理器,基于动态 ES6 模块加载器 直接从任意的 registry(比如 npm 或者 GitHub)加载任意模块格 ...

  2. [Javascript] An Introduction to JSPM (JavaScript Package Manager)

    JSPM can handle installed packages, transpiling ES6, and bundling all from the command-line. This vi ...

  3. jspm 简介

    借鉴:http://www.jianshu.com/p/4aba847b3e8c 功能 1. 支持加载JavaScript各种模块化的写法:AMD.CommonJS.标准化的ES6模块... 2. 包 ...

  4. jspm 安装试用

    1. 安装 yarn global add jspm or npm install -g jspm 2. 创建项目使用 mkdir appdmeo jspm init 3. 安装依赖 jspm ins ...

  5. 作为前端er,写在年末的一些话

    写惯了技术类的文章,这种总结和唠嗑型的我基本也就在年末才来一篇.说实话,这种轻松类的文章往往比技术类的要受欢迎的多,因为其受众更广,看起来也不烧脑. 说来愧疚,这一年其实产出有点低,大致就写了不到二十 ...

  6. JavaScript资源大全中文版(Awesome最新版)

    Awesome系列的JavaScript资源整理.awesome-javascript是sorrycc发起维护的 JS 资源列表,内容包括:包管理器.加载器.测试框架.运行器.QA.MVC框架和库.模 ...

  7. ES6环境搭建及react-router学习

    一.起因 ES6新纳入了很多振奋人心的新特性,真的很让人忍不住去尝试一下.不过,由于现在大部分的浏览器对ES6的支持程度都不是很好.所以如果想要放心地使用一些新特性,还需要用一些工具,将ES6或者ES ...

  8. VS2015插件

    这里记录一下,VS2015使用的插件和具体用法链接 Refactoring Essentils:代码重构分析 http://vsrefactoringessentials.com/ 可以使用 取消 R ...

  9. JS 模块化和打包方案收集

    1.这里想讨论的是拆分规则,不是在问哪个工具怎么使用.2.这里没有在想找正确答案,因为感觉这个问题要结合具体业务场景. 随着项目开发越来越大,一开始代码全打包到一个文件的方式,让文件越来越大,接下来要 ...

随机推荐

  1. 数据库质疑修复(SUSPECT)总结,DBCC报错

    当SQL SERVER数据库状态为质疑(SUSPECT)状态时,我们可以用以下方法来处理: DBCC报错 1. 修改数据库为紧急模式:ALTER DATABASE DBName SET EMERGEN ...

  2. 在一台服务器上搭建多个网站的方法(Apache版)

    Apache的配置文件一般放置在/etc/httpd/conf文件夹下,httpd.conf是它的主配置文件,在进行配置时可以将虚拟主机的配置文件单独配置,如取名为vhost.conf,然后再http ...

  3. AndroidStudio项目import进的包都是红色的

    今天在开发项目时,一不留神,项目中import部分的内容全部变成了灰色,最后的类名却都变成了红色,如图: 一时之间,懵逼了~~~.Alt+Enter快捷键导包竟然是这个样子的@_@:  这简直就没见过 ...

  4. python2 和 pyhton3 输入语句写法

    Python的输入语句类型 1 python2的输入语句 在python2中有两种常见的输入语句,input()和raw_input(). (1)input()函数 可以接收不同类型的参数,而且返回的 ...

  5. 剑指offer 面试22题

    面试22题: 题目:链表中倒数第k个节点 题:输入一个链表,输出该链表中倒数第k个结点. 解题思路:为了实现只遍历链表一次就能找到倒数第k个节点,我们可以定义两个指针.让第一个指针先向前走k-1步,第 ...

  6. 曾经跳过的坑------JS中对象与结构体的声明和调用

    直接上代码 正确的写法 //同一个ready方法中var viewModel = { // self.projectCode = PROJECT_CODE; BOOKEDCOUNT : 5, TOTA ...

  7. Manacher专题

    1.POJ 3974 Palindrome 题意:求一个长字符串的最长回文子串. 思路:Manacher模板. #include<iostream> #include<algorit ...

  8. python默认参数不能定义为可变对象类型

    python的默认参数只会在函数定义时被确定,而不是每次调用时重新确定,所以,一旦在函数中修改了默认参数,则在随后的调用中都会生效 由于这个特性,在定义函数时,如果默认参数使用可变的对象类型,如空列表 ...

  9. iOS 认识runtime 中的三个指针 isa , IMP , SEL

    runtime中函数调用经常被提及的三个概念 isa,IMP,SEL 一  isa:是类指针,之所以说isa是指针是因为Class其实是一个指向objc_class结构体的指针,而isa 是它唯一的私 ...

  10. 019_Map Task数目的确定和Reduce Task数目的指定

    注意标题:Map Task数目的确定和Reduce Task数目的指定————自然得到结论,前者是后者决定的,后者是人为指定的.查看源码可以很容易看懂 1.MapReduce作业中Map Task数目 ...