spm3安装和使用
readme : 因为我在在spm3中主要用到的是spm build这个命令,因此本文简单的介绍一下如何安装spm3和使用其中的spm build命令
一.安装
1.安装nodejs
直接去官网下载nodejs,然后进行安装,这里就不详细说明了,安装好以后可以尝试一下node -v这个命令,如果安装成功的话一般都会弹出版本号
2.安装spm3
打开cmd(命令提示符),然后键入npm install spm -g,因为新安装的spm都是默认最新的,也就是spm3,至少现在还是这样~
在上面这个过程中其实会发生很多事,比如安装失败,it‘s so 正常~毕竟每台电脑的环境不一样么~不过我自己在三台电脑上进行了安装,一开始都有些错误,不过最后经过我的努力,终于都搞定了。
这里我大概说下可能出现错误的原因:
(上面“一”和“1”都用过了,大家就将就下我的英语吧~嘿~嘿)
first:nodejs的版本太低,这个可能需要你安装新的nodejs才能解决
second:你运行npm install spm的环境可能不太对,最好还是直接在cmd窗口中运行,因为我在powercmd这个软件中安装了三次都失败了,最后在电脑原生的cmd窗口中运行了一下就装好了
三.使用
1.生成项目
也许你之前使用过了spm2或者更早的,那么你可能不需要再看了,因为你可能比我更了解它了~
这里我还想说的是,这里我所写的都是不适用gruntjs的哦~如果要配合gruntjs的话,你可以用grunt安装个shell插件来执行build spm这个命令(不用grunt的孩子们这句话就别管了哦~)
言归正传:将cmd的目录跳转到在你准备构建项目的目录下,然后键入spm init,它会自动给你构建出项目的
其实构建出来的这么多东西大部分都没什么用,其中最有用的当然就是package.json。
2.package.json解释
这里呢,我给大家一个官方的文档地址http://spmjs.io/documentation/package.json,大家可以去看下,虽然是英文的,但是TMD是国人自己写的,为什么不MMD写成中文的呢,我********,好了,不说了,都是泪~
看了官网的文档,也许你还是不太明白,其实我也不是很明白,我只好给大家讲讲我自己的看法和简介了~
当你打开这个json文档的时候,你会看到spm这个节点,下面有个dependencies,在它下面放的都是一些插件和工具(给代码用的,我想jq在里面你就能够理解它是干嘛的了),而main这个节点是js的一个主入口,一开始我也不太理解,不过最后我还是不太理解,我觉得能用到的地方是当你开发一款插件(最后只生成一个js的项目)的时候需要用到。
其中比较有用的我感觉是output,这个是一个数组,用来写你js的原始路径(只需要写你主要的js路径就ok了,生成的路径是spm自己生成的)。
3.构建项目
在构建项目时主要也是唯一可以用到的就是运行spm build方法了,这个方法会生成一个dist文件夹,里面的文件什么的,都是通过package.json这个文件中的配置来生成的,所以最好了解一下package.json这个文件。
当你生成好以后修改你页面中seajs.use的路径(也可以修改seajs.config),就能够运行你的项目了!!!
4.say fuck~
oh,no~~~why 我的项目跑步起来,js没报错?但是就是js不执行?
我遇到这个情况已经不是一次了,我一开始搞了好久都是这个问题,恼火死我了,真心不想用spm3了,这蛋疼的东西~~~
后来我才知道原来spm3是整合符合cmd规范的,使用seajs来开发的代码!所以你的模块化代码不需要再写define这个东西,而require、exports、module依然还是存在的不需要你自己写。
当然这也产生了很多问题,就是没有构建的时候你的模块化代码无法跑起来,而构建的时间又“很长”,所以只能说spm3还不够完善~i think 是这样的~
总结:
这是我第一次在博客园发随笔哦,技术水平不够请各位大侠担待~so 3Q~
spm3安装和使用的更多相关文章
- spm3 基本
spm3 命令 spm init //初始化一个spm模块,会生成基本配置以及测试文件等(下图). //注 初始化以后一般需要 鲜执行一下 spm install 安装默认依赖模块 index.js就 ...
- docker——容器安装tomcat
写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...
- 网络原因导致 npm 软件包 node-sass / gulp-sass 安装失败的处理办法
如果你正在构建一个基于 gulp 的前端自动化开发环境,那么极有可能会用到 gulp-sass ,由于网络原因你可能会安装失败,因为安装过程中部分细节会到亚马逊云服务器上获取文件.本文主要讨论在不变更 ...
- Sublime Text3安装JsHint
介绍 Sublime Text3使用jshint依赖Nodejs,SublimeLinter和Sublimelinter-jshint. NodeJs的安装省略. 安装SublimeLinter Su ...
- Fabio 安装和简单使用
Fabio(Go 语言):https://github.com/eBay/fabio Fabio 是一个快速.现代.zero-conf 负载均衡 HTTP(S) 路由器,用于部署 Consul 管理的 ...
- gentoo 安装
加载完光驱后 1进行ping命令查看网络是否通畅 2设置硬盘的标识为GPT(主要用于64位且启动模式为UEFI,还有一个是MBR,主要用于32位且启动模式为bois) parted -a optima ...
- Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级
Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 5.安装Database软件 5. ...
- Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作
Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 1.实施前准备工作 1.1 服务器安装操 ...
- 【原】nodejs全局安装和本地安装的区别
来微信支付有2年多了,从2年前的互联网模式转变为O2O模式,主要的场景是跟线下的商户去打交道,不像以往的互联网模式,有产品经理提需求,我们帮忙去解决问题. 转型后是这样的,团队成员更多需要去寻找业务的 ...
随机推荐
- 不用删除整个Maven本地库文件夹,Eclipse下直接更新Maven库
- 用radio控制<tr>的隐藏和显示问题
jsp页面代码 <tr> <th nowrap="nowrap" width="10%" height="50px" st ...
- [CSS]置换和非置换元素
转自:http://blog.doyoe.com 先进一个题外话 在面试一个 重构(各大公司的叫法可能不太一样)时,我喜欢从一个点开始问,然后一直延展下去成为一条线,甚至是一个面,直到问到不会的地方, ...
- hdu 5363 组合数学 快速幂
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) Problem Descrip ...
- linuc c 代码示例
fork的应用: #include "stdio.h" #include "string.h" #include <sys/types.h> #in ...
- 深入Java集合学习系列:HashMap的实现原理
1. HashMap概述: HashMap是基于哈希表的Map接口的非同步实现.此实现提供所有可选的映射操作,并允许使用null值和null键.此类不保证映射的顺序,特别是它不保证该顺序恒久不变 ...
- 想直接用Windows API开发程序,你真的应该知道这些!
1,Windows数据类型. 2,Windows数据类型命名规律. 3,匈牙利表示法.
- Python基础03 序列
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! sequence 序列 sequence(序列)是一组有顺序的元素的集合 (严格的 ...
- SyntaxError: Non-UTF-8 code starting with '\xba' in file 错误的解决方法!!
第一次在Eclipse建立python工程,添加了自己新建的文件,写了一点代码,随后执行时候出现了错误,和昨天我在Visual Studio 2015里面一样,错误: SyntaxError: Non ...
- Google是如何做代码审查的?
Google是一个非常优秀的公司.他们做出了很多令人称赞的东西—既是公司外部,人们可以看到的东西,也是公司内部.有一些在公司内部并不属于保密的事情,在外部并没有给予足够广泛的讨论.这就是我今天要说的. ...