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模式,主要的场景是跟线下的商户去打交道,不像以往的互联网模式,有产品经理提需求,我们帮忙去解决问题. 转型后是这样的,团队成员更多需要去寻找业务的 ...
随机推荐
- 3. Map与Tuple
一. Map 对偶 (1)对偶是一个映射.多个对偶形成map (2)对偶的表示:(k,v)或者k->v Map(哈希类型) (1)map的声明与查询 scala> val map1 = M ...
- 26种提高ASP.NET网站访问性能的优化方法 .
1. 数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源. ASP.NET中提供了连接池 ...
- OAF_VO系列4 - Row Imp的分析(概念)
20150706 Created By BaoXinjian
- Transact-SQL的除法问题
SELECT 3800/365, 3800.0/365; 执行上面的sql,得到的结果是:10, 10.410958 返回优先级较高的参数的数据类型. 有关详细信息,请参阅数据类型优先级 (Trans ...
- 常用到的Mysql语句
经典SQL语句大全 一.基础 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql serv ...
- 用block响应button的点击事件
1.继承UIButton : 2.在自己定义的button类中的方法 addTarget:(id)target action:(SEL)action forControlEvents:(UIContr ...
- sublime3快捷 输入html
ID and CLASS attributes html > // 直接生成整个框架 > 表示 tab建 #header <div id="header"> ...
- [ActionScript 3.0] AS3.0 生成xml方法之一
var type:Array = ["type0", "type1", "type2"]; var property:Array = [[& ...
- 关于JavaScript中apply与call的用法意义及区别(转)
JavaScript中有一个call和apply方法,其作用基本相同,但也有略微的区别. 先来看看JS手册中对call的解释: call 方法调用一个对象的一个方法,以另一个对象替换当前对象. cal ...
- 九度OJ1084
这道题一旦想开,其实思想十分简单的. 首先考虑n为奇数的情况,不难知f(n)=f(n-1).(只需要把n的所有拆分式-1即可……) 然后考虑n为偶数的情况,将拆分式划分为两种情况:一种是式子中带1的, ...