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模式,主要的场景是跟线下的商户去打交道,不像以往的互联网模式,有产品经理提需求,我们帮忙去解决问题. 转型后是这样的,团队成员更多需要去寻找业务的 ...
随机推荐
- WebAPI 安全性 使用TOKEN+签名验证(上)
首先问大家一个问题,你在写开放的API接口时是如何保证数据的安全性的?先来看看有哪些安全性问题在开放的api接口中,我们通过http Post或者Get方式请求服务器的时候,会面临着许多的安全性问题, ...
- bug_ _java.lang.IllegalArgumentException: View not attached to window manager 2
今天遇到一个很奇特的问题,当用户设置了PIN码,在锁屏界面正常解锁PIN码后,进入Launcher时显示com.android.phone 已停止运行.一开始猜想会不会是解锁PIN码的时候处理导致了P ...
- ylbtech-Unitity-CS:AnonymousDelegates
ylbtech-Unitity-CS:AnonymousDelegates 1.A,效果图返回顶部 1.B,源代码返回顶部 1.B.1, using System; using System.Co ...
- JAVA 界面 - 记事本
代码: import java.awt.*; import javax.swing.*; import java.awt.event.*; public class Jiemian10 extends ...
- 深入ThreadLocal之三(ThreadLocal可能引起的内存泄露)
threadlocal里面使用了一个存在弱引用的map,当释放掉threadlocal的强引用以后,map里面的value却没有被回收.而这块value永远不会被访问到了. 所以存在着内存泄露. 最好 ...
- Echarts-地图扩展-标准geoJson格式扩展地图-例子
本人菜鸟一枚,最近搞echarts地图.看到官方给的“标准geoJson格式扩展地图-全国主要城市”的例子,瞬间就蒙逼了.不怪人官网的例子不好,实在是我看不懂它是怎么弄得.最后折腾了一晚上,最后终于弄 ...
- Gatling的进阶二
1. 参数化 Gatling可以很方便使用csv文件进行参数化,例如一个用户信息表: /* user_information.csv */ username,password,accoun ...
- tomcat服务器不输出访问日志
有时候一个WEB服务作为接口部署在tomcat下,因为访问很频繁,导致/var/log/tomcat7下的访问日志急剧膨胀,影响服务器的性能. 在这里我的方法是关闭访问日志,关闭方法为将访问日志的输出 ...
- Servlet中读取参数的几种方式
为每一Servlet设置初始化参数 可以为每一个Servlet在对应的web.xml中的Servlet节点下编写初始化参数,格式如下: <init-param> <param-nam ...
- FreeMarker语法知识
FreeMarker的模板文件并不比HTML页面复杂多少,FreeMarker模板文件主要由如下4个部分组成:1,文本:直接输出的部分2,注释:<#-- ... -->格式部分,不会输出3 ...