Git Product home page Git Product logo

spm-build's People

Contributors

afc163 avatar lanxyou avatar lepture avatar panxuepeng avatar popomore avatar sorrycc avatar sunylt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

spm-build's Issues

spm build的output配置问题

像下面这样配置output可以正常build

"source":"js/",
"output":[
            "app/app2/index/src/index.js"
        ]

而改过这样就不会合并依赖模块了,这是为啥呢

"source":"js/",
"output":[
            "**/*"
        ]

甚至
_/_.js 这样
app/app2/index/src/
.js 这样
都不行,感觉上一定要指定到最具体的路径才行,无法使用通配符

spm build 构建业务模块的输出路径问题

因为业务模块会经常变动,版本问题通过map时间戳解决.
所以我打算把业务模块就放在项目中,不部署到静态资源服务器上.
spm build输出路径默认为当前路径下创建dist目录,而我希望自定义输出路径.
查了好多资料,好多都不是spm2版本的.
只有下面这个命令是管用的

spm build -O static

但每次都输入后面的参数比较繁琐,能不能通过配置文件解决呢,在package.json中试了好多种办法都不行.以下是我的package.json

{
    "family": "test",
    "version": "0.0.1",
    "name": "spmTest",
    "spm": {
        "idleading":"/seajs-simple-build/dist/",
        "source":"js/",
        "output":[
            "app/app2/index/src/index.js"
        ],
        "alias": {
            "select2": "jquery/select2/3.4.5/select2-zh-cn",
            "select2Css": "jquery/select2/3.4.5/select2.css"
        }
    }
}

windows xp 系统下如何使用spm

windows xp 32位操作系统
我已经安装node,npm
并且已经配置好了环境变量Path和Node_Path,
安装好spm ,spm-build
该如何使用spm进行标准项目构建?
以该项目的example 为例
使用spm build命令时
没有生成dist文件夹,而且报出 error: $CWD\a.js not found

spm build文件编码问题

刚开始接触spm,处理gbk编码文件时遇到乱码问题。

spm build --help里看到有个--encoding选项:
--encoding [encoding] file encoding: [utf8]

设置成gbk后读取gbk编码的文件还是会出现乱码。追了一下代码,发现初始化的配置只是传递给grunt.option初始化,在后面读写文件的时候调用grunt.file.read/write的时候并没指定编码,所以使用的还是默认的utf8

不知是否是我的使用方法有误。有没有比较好的办法解决这个问题?

我在本地临时的解决办法是修改grunt.file.read/write中编解码部分代码:

contents = iconv.encode(contents, options.encoding || grunt.option('encoding') || file.defaultEncoding);

关于配置的问题

seajs在使用的时候需要一个配置文件或者配置项来控制alias等的一个对应关系,在使用spm-build来构建的时候在package.json中也会配置一个alias项来控制生成文件的依赖项的路径,那么在实际应用中,在对业务脚本进行构建生成后,代码中已经包含了require模块的完整路径,那么页面上是不是不再需要引用额外的配置文件了呢,只需要一个sea文件和相关的业务文件?在线等...

构建seajs业务模块之grunt VS spm build

在清明假期,整理了下之前做的spm-打包测试,写了个小总结,不知道发在这里合不合适,有点长,全文如下:

在最开始,我并不知道grunt可以构建CMD模块.(以下spm指代spm build,spm版本2.2.5)当时正困惑于如何用spm方便的构建业务模块,后来看到@twinstony (感谢@twinstony的分享)使用grunt-cmd-xxx插件构建了CMD模块,跟着demo自己做了测试,的确可以构建,但是有一个问题:
grunt 方式不能把依赖的外部css(比如非项目中的jquery插件css)打包进来,而spm可以.
其原因是,spm会根据别名配置依次(./sea-mpdules -> ~/.spm/cache -> 源)查找并下载依赖,最后将依赖的css依赖打包进来(通过seajs.imporStyle).
而grunt并没有做这件事情,也许可以通过另一个grunt插件完成.

另,include这个参数是针对js模块的,对于css 而言则是"all"

还有一个不是问题的问题:
用grunt方式构建,参数配置项太多了,有时候找问题不太好找.或者说是过于灵活了,使开发者们无所适从.
而spm把很多东西都封装好了,只需配置简单几个参数即可,符合seajs简单一致的设计原则.
其实spm底层也是调用了grunt-cmd-transport以及其他模块,但把一些繁杂的配置帮我们处理好了

之前对于spm的困惑是:
1.打包出的模块id只能是family/version/name么? --通常业务模块并不需要这类命名
2.打包出的模块路径只能是直接输出到dist目录下? --不能像grunt那样,构建出来的目录结构与源文件的目录结构一致么?
3.输出目录不能指定么,只能是dist么? --如果可以指定,就可以直接省略掉部署环节(本地部署)

经过摸索与咨询,得出一个可行的解决方案,感谢@popomore 的指点
示例代码下载链接:
https://github.com/stoneChen/seajs-backbone-test/tree/master

(以下所有spm命令均在sea-modules的上一层目录下,即js下执行,package.json设置在这里)
A.所有模块部署在项目中.

以下以一个简单的示例(需要对backbone有一定了解)演示.

img
上图是目录结构.
sea-modules是spm默认的模块安装目录名.
为了开发方便,不必每次查看效果都要spm build一番,在开发阶段不使用spm打包代码,除源上的已成熟的组件外(可通过spm install安装都本地),均使用匿名模块查看页面效果.

img

上图是我把seajs结合backbone做的一个demo.
等所有功能开发完毕后,现在页面引入模块文件是这样的

seajs.use('start.js');

接着,进入打包阶段.

{
    "family": "test",
    "version": "0.0.1",
    "name": "spmTest",
    "spm": {
        "idleading": "_output/",
        "source": "sea-modules",
        "output": [
            "start.js",
            "app/gettingStart.js",
            "app/index.js",
            "app/userlist.js",
            "collection/C_userlist.js",
            "model/M_gettingStart.js",
            "model/M_index.js",
            "model/M_user.js",
            "view/V_gettingStart.js",
            "view/V_index.js",
            "view/V_user.js",
            "view/V_userlist.js"
        ],
        "alias": {
            "$": "jquery/jquery/1.7.2/jquery",
            "$-debug": "jquery/jquery/1.7.2/jquery-debug",
            "jquery": "jquery/jquery/1.7.2/jquery",
            "jquery-debug": "jquery/jquery/1.7.2/jquery-debug",
            "select2": "jquery/select2/3.4.5/select2-zh-cn",
            "select2-css": "jquery/select2/3.4.5/select2.css",
            "select2-css-debug":"jquery/select2/3.4.5/select2-debug.css",
            "underscore": "gallery/underscore/1.5.2/underscore",
            "backbone": "gallery/backbone/1.1.0/backbone"
        }
    }
}

以上为package.json配置.
然后终端执行
spm build -O sea-modules/_output
img
如上图,然后_output目录就会被创建,相应目录结构的模块就会依次生成好.

然后改变页面上引入模块的路径,只需添加一个前缀即可:

seajs.use('_output/start.js');  //开发阶段是seajs.use('start.js');

之前开发好的功能,现在一样能够跑通,而且执行效率会更高.

下面,讲一下其中的注意点

package.json重点是idleading,source,output的配置

"idleading": "_output/",
        "source": "sea-modules",
        "output": [
            "start.js",
            "app/gettingStart.js",
            "app/index.js",
            "app/userlist.js",
            "collection/C_userlist.js",
            "model/M_gettingStart.js",
            "model/M_index.js",
            "model/M_user.js",
            "view/V_gettingStart.js",
            "view/V_index.js",
            "view/V_user.js",
            "view/V_userlist.js"
        ],

1.idleading如果不配置,那么生成出来的id就是family/version/name这种形式,这个值怎么配,需要与source,output配合,最终达到的效果就是最终加载这个模块的路径(require或use的参数)与生成的id值要一致,至于为什么,请参考seajs/seajs#930

2.source指定从当前目录下的哪个目录"查找"需要被构建的模块,这个官方文档有说明

3.output指定具体要被构建的模块,这里很重要,数组里的每个路径怎么写,生成出来的目录结构就是怎么样的.我曾经试过,将他们写成

"output": [
            "start.js",
            "app/*.js",
            "collection/*.js",
            "model/*.js",
            "view/*.js"
        ],

但是前面提到那个css打包问题又出现了,而且模板文件也不打包了,好像是合并操作都失效了的感觉.这个就不知为何了,曾经提过issue,说是不支持这种写法.
4.执行build命令时指定 -O 的值,指定输出目录, 这个除了这种方式,不知道怎么在配置文件中解决,也提过issue,貌似需要自己实现.
5.还有一个奇怪的警告:
img
为啥会去找sea-debug?(后补:transport任务会转换source下所有文件,而sea-debug当然不是cmd模块,但是压缩版的sea.js也不是啊,怎么不警告?)
还有一点,下面那个152 files,貌似是对souce下的所有文件都进行transport了,但目标并不是全部,也就是说,实际上output的配置在transport后才起作用,是不是有些不太合理?

这样打包好后,结合seajs-debug,seajs-debug用于测试环境,线上调试,以及map控制时间戳,就能很好的管理所有模块了

ps:关于seajs的默认base,还有这种情况在:

img
本demo中即属于这种情况.

构建输出目录在sea-modules/_output下
访问backbobe-test.html查看最终效果

个人建议将工程代码在webstorm(@7.0+)中打开,webstorm会自动启动一个web服务,或者其他能够启动web服务的方式.
以seajs-backbone作为根目录
ps:工程中的sea.js,我已经把text,log,debug,style四个插件手动合并进去了
B.业务模块部署在项目中,其他模块包括seajs本身及其插件部署在静态资源服务器见附件,构建时,只需将idleading做适当转换即可,总之要保证require或use时的路径和id一致

构建输出目录在sea-modules/_output2下
访问backbobe-test-outer.html查看最终效果

这种情况下需要启动两个web服务,一个webstorm的,一个静态资源服务器的,个人建议使用nodejs的anywhere启动.

接下来附上几幅效果图
A1.开发阶段:
img
A2.构建好后:
img

A3.构建好后,使用seajs-debug调试:
img

B1.公用模块外部部署,开发阶段:
img
B2.公用模块外部部署,构建好后:
img
B3.公用模块外部部署,构建好后调试:
img

代码下载地址:
https://github.com/stoneChen/seajs-backbone-test/tree/master

欢迎大家指出不正确或不合理的地方~

安装spm不成功

sudo npm install spm
npm http GET http://registry.npmjs.org/spm
npm http 304 http://registry.npmjs.org/spm

[email protected] preinstall /Users/looping/work/www/node_modules/spm
node scripts/preinstall.js

NO SUDO PLEASE!!!
Maybe you need run:

$ sudo chown -R $USER /usr/local

More information on http://howtonode.org/introduction-to-npm
npm ERR! [email protected] preinstall: node scripts/preinstall.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] preinstall script.
npm ERR! This is most likely a problem with the spm package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node scripts/preinstall.js
npm ERR! You can get their info via:
npm ERR! npm owner ls spm
npm ERR! There is likely additional logging output above.

npm ERR! System Darwin 13.0.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "spm"

Grunt 0.4 Release

I'm posting this issue to let you know that we will be publishing Grunt 0.4 on Monday, February 18th.

If your plugin is not already Grunt 0.4 compatible, would you please consider updating it? For an overview of what's changed, please see our migration guide.

If you'd like to develop against the final version of Grunt before Monday, please specify "grunt": "0.4.0rc8" as a devDependency in your project. After Monday's release, you'll be able to use "grunt": "~0.4.0" to actually publish your plugin. If you depend on any plugins from the grunt-contrib series, please see our list of release candidates for compatible versions. All of these will be updated to final status when Grunt 0.4 is published.

Also, in an effort to reduce duplication of effort and fragmentation in the developer community, could you review the grunt-contrib series of plugins to see if any of your functionality overlaps significantly with them? Grunt-contrib is community maintained with 40+ contributors—we'd love to discuss any additions you'd like to make.

Finally, we're working on a new task format that doesn't depend on Grunt: it's called node-task. Once this is complete, there will be one more conversion, and then we'll never ask you to upgrade your plugins to support our changes again. Until that happens, thanks for bearing with us!

If you have any questions about how to proceed, please respond here, or join us in #grunt on irc.freenode.net.

Thanks, we really appreciate your work!

spm is required in package.json

E:\spm\js>spm build

C:\nodejs\node_modules\spm-build\index.js:24
throw new Error('spm is required in package.json');
^
Error: spm is required in package.json
at module.exports (C:\nodejs\node_modules\spm-build\index.js:24:11)
at Object. (C:\nodejs\node_modules\spm-build\bin\spm-build:50:1
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:901:3

spm build安装成功,就是一直执行不了,不知道为什么

deps 和 require 不一致

a.js

define(function() {
  require('./b.js');
})

打包后

define('family/name/version/a', [... 'family/name/version/b.js']function() {
  require('family/name/version/b');
})

虽然没问题,但是命名不一致

Aggressive building CMD package strategy

假设下列的源文件目录结构,main.js 文件为输出文件,依赖 util.jshelper.js

src
    main.js
    util.js
    helper.js

目前打包出来的 dist/main.js 是下面这个样子的。

define('main', ['./helper', './util'], function() {
    var helper = require('./helper');
    var util = require('./util');
    // main code
});

define('helper', [], function() {
    // helper code
});

define('util', [], function() {
    // util code
});

这样的打包方式会产生三个 define 模块,其中的两个为内部模块不会被外部调用。 由于这样的打包方式,如果编码时随意拆分模块,最终页面上的 define 块的数量会特别多,给 SeaJS 的依赖链性能带来很大的压力。

实际上,在上面这个例子中,只需要暴露 main 这个主模块,其他的子模块都可以内嵌到 main 的 define 中去,比如:

define('main', ['./helper', './util'], function() {
    var helper = (function() {
        // helper code
        return helper;
    })();

    var util = (function() {
        // util code
        return util;
    })();

    // main code
});

这样一个 output 文件只会有一个 define 模块,可以大大降低模块依赖的绝对数量,从而提升页面整体 性能

而开发者依然可以随意拆分模块内部的文件,来提供模块的可维护性。

spm build 源码中配置grunt的问题

在config.js中配置transport的时候

files: [{
cwd: '.build/tmp',
src: '*/.css',
filter: 'isFile',
dest: '.build/src'
}]

在grunt中有个expand配置, 如果expand设置为true的话, 那么代这些设置有效, 但是在源码中并没有设置expand为true, 请问为什么? 如果是本身不需要将这些设置生效,那么为什么还要设置这些?

spm-build install

EACCES, permission denied '/root/.spm/plugins.json'
you need install spm to register the program

$ npm install spm -g

if you have installed spm, it maybe you haven't set a NODE_PATH environment variable

安装失败, underscore.string 找不到对应版本

具体的 log 贴在 SegmentFault

➤➤ node -v
v0.10.12
➤➤ npm -v
1.2.32

有点难理解这个错误信息:

npm ERR! Error: No compatible version found: underscore.string@'>=2.2.0rc <2.3.0-'
npm ERR! Valid install targets:
npm ERR! ["0.9.2","1.0.0","1.1.3","1.1.4","1.1.5","1.1.6","2.0.0","2.1.0","2.1.1","2.3.0","2.3.1","2.2.0-rc"]

为什么会自动install arale/class

在windows7环境下会自动下载 arale/class
最后的class模块的路径是:e:\simple\sea-modules\arale\class\1.0.0
也就是说 dist和 sea-modules 同在simple下面,感觉怪怪的。

其实我已经有这个class模块了,在 e:\sea-modules\arale\class\1.0.0

请问
1 这个自动下载有什么用?
2 是否可以设置不下载?或者下载到指定路径,如 e:\sea-modules\

安装spm-build始终都安装不成功,但是过程中都没出现报错

C:\Users\admin>npm install spm-build -g -f
npm WARN using --force I sure hope you know what you are doing.
npm http GET https://registry.npmjs.org/spm-build
npm http 304 https://registry.npmjs.org/spm-build
npm http GET https://registry.npmjs.org/spm-build/-/spm-build-0.3.12.tgz
npm http 200 https://registry.npmjs.org/spm-build/-/spm-build-0.3.12.tgz
npm http GET https://registry.npmjs.org/spmrc
npm http GET https://registry.npmjs.org/grunt-contrib-cssmin
npm http GET https://registry.npmjs.org/grunt-cmd-concat
npm http GET https://registry.npmjs.org/grunt-contrib-copy
npm http GET https://registry.npmjs.org/grunt-contrib-clean
npm http GET https://registry.npmjs.org/commander
npm http GET https://registry.npmjs.org/grunt-contrib-uglify
npm http GET https://registry.npmjs.org/grunt-cmd-transport
npm http GET https://registry.npmjs.org/spm-grunt
npm http 304 https://registry.npmjs.org/spmrc
npm http GET https://registry.npmjs.org/spmrc/-/spmrc-0.1.3.tgz
npm http 304 https://registry.npmjs.org/grunt-contrib-cssmin
npm http GET https://registry.npmjs.org/grunt-contrib-cssmin/-/grunt-contrib-css
min-0.6.2.tgz
npm http 304 https://registry.npmjs.org/grunt-contrib-copy
npm http GET https://registry.npmjs.org/grunt-contrib-copy/-/grunt-contrib-copy-
0.4.1.tgz
npm http 304 https://registry.npmjs.org/commander
npm http 304 https://registry.npmjs.org/grunt-contrib-uglify
npm http GET https://registry.npmjs.org/commander/-/commander-1.1.1.tgz
npm http GET https://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-ugl
ify-0.2.7.tgz
npm http 304 https://registry.npmjs.org/grunt-cmd-transport
npm http GET https://registry.npmjs.org/grunt-cmd-transport/-/grunt-cmd-transpor
t-0.3.0.tgz
npm http 304 https://registry.npmjs.org/grunt-cmd-concat
npm http GET https://registry.npmjs.org/grunt-cmd-concat/-/grunt-cmd-concat-0.2.
7.tgz
npm http 304 https://registry.npmjs.org/spm-grunt
npm http GET https://registry.npmjs.org/spm-grunt/-/spm-grunt-0.1.7.tgz
npm http 200 https://registry.npmjs.org/grunt-contrib-cssmin/-/grunt-contrib-css
min-0.6.2.tgz
npm http 200 https://registry.npmjs.org/grunt-contrib-copy/-/grunt-contrib-copy-
0.4.1.tgz
npm http 200 https://registry.npmjs.org/commander/-/commander-1.1.1.tgz
npm http 200 https://registry.npmjs.org/grunt-cmd-transport/-/grunt-cmd-transpor
t-0.3.0.tgz
npm http 200 https://registry.npmjs.org/grunt-cmd-concat/-/grunt-cmd-concat-0.2.
7.tgz
npm http 200 https://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-ugl
ify-0.2.7.tgz
npm http 200 https://registry.npmjs.org/spm-grunt/-/spm-grunt-0.1.7.tgz
npm http 200 https://registry.npmjs.org/spmrc/-/spmrc-0.1.3.tgz
npm http 304 https://registry.npmjs.org/grunt-contrib-clean
npm http GET https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clea
n-0.5.0.tgz
npm http 200 https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clea
n-0.5.0.tgz
npm http GET https://registry.npmjs.org/grunt
npm http GET https://registry.npmjs.org/keypress
npm http GET https://registry.npmjs.org/clean-css
npm http GET https://registry.npmjs.org/cmd-util
npm http GET https://registry.npmjs.org/rimraf
npm http GET https://registry.npmjs.org/handlebars/1.0.11
npm http GET https://registry.npmjs.org/css
npm http GET https://registry.npmjs.org/uglify-js
npm http GET https://registry.npmjs.org/grunt-lib-contrib
npm http GET https://registry.npmjs.org/clean-css
npm http GET https://registry.npmjs.org/cmd-util
npm http GET https://registry.npmjs.org/grunt
npm http GET https://registry.npmjs.org/uglify-js
npm http GET https://registry.npmjs.org/grunt-lib-contrib
npm http 304 https://registry.npmjs.org/grunt
npm http GET https://registry.npmjs.org/grunt/-/grunt-0.4.2.tgz
npm http 304 https://registry.npmjs.org/cmd-util
npm http 304 https://registry.npmjs.org/rimraf
npm http GET https://registry.npmjs.org/cmd-util/-/cmd-util-0.3.12.tgz
npm http GET https://registry.npmjs.org/rimraf/-/rimraf-2.2.5.tgz
npm http 304 https://registry.npmjs.org/handlebars/1.0.11
npm http GET https://registry.npmjs.org/handlebars/-/handlebars-1.0.11.tgz
npm http 304 https://registry.npmjs.org/css
npm http 304 https://registry.npmjs.org/uglify-js
npm http GET https://registry.npmjs.org/css/-/css-1.4.4.tgz
npm http GET https://registry.npmjs.org/uglify-js/-/uglify-js-2.2.5.tgz
npm http 304 https://registry.npmjs.org/cmd-util
npm http 304 https://registry.npmjs.org/grunt-lib-contrib
npm http GET https://registry.npmjs.org/grunt-lib-contrib/-/grunt-lib-contrib-0.
6.1.tgz
npm http 304 https://registry.npmjs.org/clean-css
npm http GET https://registry.npmjs.org/clean-css/-/clean-css-1.1.7.tgz
npm http 304 https://registry.npmjs.org/grunt
npm http 304 https://registry.npmjs.org/keypress
npm http GET https://registry.npmjs.org/keypress/-/keypress-0.1.0.tgz
npm http 304 https://registry.npmjs.org/uglify-js
npm http 304 https://registry.npmjs.org/grunt-lib-contrib
npm http GET https://registry.npmjs.org/uglify-js/-/uglify-js-2.4.8.tgz
npm http 200 https://registry.npmjs.org/css/-/css-1.4.4.tgz
npm http 200 https://registry.npmjs.org/rimraf/-/rimraf-2.2.5.tgz
npm http 200 https://registry.npmjs.org/uglify-js/-/uglify-js-2.2.5.tgz
npm http 200 https://registry.npmjs.org/grunt-lib-contrib/-/grunt-lib-contrib-0.
6.1.tgz
npm http 200 https://registry.npmjs.org/handlebars/-/handlebars-1.0.11.tgz
npm http 200 https://registry.npmjs.org/cmd-util/-/cmd-util-0.3.12.tgz
npm http 200 https://registry.npmjs.org/keypress/-/keypress-0.1.0.tgz
npm http 200 https://registry.npmjs.org/clean-css/-/clean-css-1.1.7.tgz
npm http 200 https://registry.npmjs.org/uglify-js/-/uglify-js-2.4.8.tgz
npm http GET https://registry.npmjs.org/zlib-browserify/0.0.1
npm http GET https://registry.npmjs.org/commander/-/commander-2.0.0.tgz
npm http GET https://registry.npmjs.org/uglify-js/-/uglify-js-2.3.6.tgz
npm http GET https://registry.npmjs.org/optimist
npm http GET https://registry.npmjs.org/source-map
npm http GET https://registry.npmjs.org/async
npm http GET https://registry.npmjs.org/uglify-to-browserify
npm http 304 https://registry.npmjs.org/clean-css
npm http GET https://registry.npmjs.org/clean-css/-/clean-css-1.0.12.tgz
npm http 200 https://registry.npmjs.org/grunt/-/grunt-0.4.2.tgz
npm http 200 https://registry.npmjs.org/commander/-/commander-2.0.0.tgz
npm http 200 https://registry.npmjs.org/uglify-js/-/uglify-js-2.3.6.tgz
npm http 304 https://registry.npmjs.org/uglify-to-browserify
npm http GET https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browser
ify-1.0.1.tgz
npm http 304 https://registry.npmjs.org/optimist
npm http GET https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz
npm http 304 https://registry.npmjs.org/zlib-browserify/0.0.1
npm http GET https://registry.npmjs.org/zlib-browserify/-/zlib-browserify-0.0.1.
tgz
npm http 304 https://registry.npmjs.org/source-map
npm http GET https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz
npm http 304 https://registry.npmjs.org/async
npm http GET https://registry.npmjs.org/async/-/async-0.2.9.tgz
npm http 200 https://registry.npmjs.org/zlib-browserify/-/zlib-browserify-0.0.1.
tgz
npm http 200 https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browser
ify-1.0.1.tgz
npm http 200 https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz
npm http 200 https://registry.npmjs.org/async/-/async-0.2.9.tgz
npm http 200 https://registry.npmjs.org/clean-css/-/clean-css-1.0.12.tgz
npm http 200 https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz
npm http GET https://registry.npmjs.org/css-parse/1.6.0
npm http GET https://registry.npmjs.org/css-stringify/1.3.2
npm http GET https://registry.npmjs.org/commander
npm http GET https://registry.npmjs.org/uglify-js/-/uglify-js-2.3.6.tgz
npm http GET https://registry.npmjs.org/uglify-js/-/uglify-js-1.2.6.tgz
npm http GET https://registry.npmjs.org/coffee-script
npm http GET https://registry.npmjs.org/hooker
npm http GET https://registry.npmjs.org/eventemitter2
npm http GET https://registry.npmjs.org/colors
npm http GET https://registry.npmjs.org/nopt
npm http GET https://registry.npmjs.org/minimatch
npm http GET https://registry.npmjs.org/dateformat/1.0.2-1.2.3
npm http GET https://registry.npmjs.org/findup-sync
npm http GET https://registry.npmjs.org/iconv-lite
npm http GET https://registry.npmjs.org/which
npm http GET https://registry.npmjs.org/underscore.string
npm http GET https://registry.npmjs.org/lodash
npm http GET https://registry.npmjs.org/glob
npm http GET https://registry.npmjs.org/js-yaml
npm http GET https://registry.npmjs.org/getobject
npm http GET https://registry.npmjs.org/exit
npm http GET https://registry.npmjs.org/rimraf/-/rimraf-2.0.3.tgz
npm http GET https://registry.npmjs.org/async/-/async-0.1.22.tgz
npm http 200 https://registry.npmjs.org/uglify-js/-/uglify-js-2.3.6.tgz
npm http 304 https://registry.npmjs.org/css-parse/1.6.0
npm http GET https://registry.npmjs.org/css-parse/-/css-parse-1.6.0.tgz
npm http 304 https://registry.npmjs.org/css-stringify/1.3.2
npm http GET https://registry.npmjs.org/css-stringify/-/css-stringify-1.3.2.tgz
npm http 200 https://registry.npmjs.org/uglify-js/-/uglify-js-1.2.6.tgz
npm http 304 https://registry.npmjs.org/eventemitter2
npm http GET https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.13.tgz

npm http GET https://registry.npmjs.org/wordwrap
npm http GET https://registry.npmjs.org/amdefine
npm http 304 https://registry.npmjs.org/colors
npm http GET https://registry.npmjs.org/colors/-/colors-0.6.2.tgz
npm http 304 https://registry.npmjs.org/nopt
npm http GET https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz
npm http 200 https://registry.npmjs.org/css-stringify/-/css-stringify-1.3.2.tgz
npm http 304 https://registry.npmjs.org/commander
npm http GET https://registry.npmjs.org/commander/-/commander-1.3.2.tgz
npm http 304 https://registry.npmjs.org/hooker
npm http 304 https://registry.npmjs.org/coffee-script
npm http GET https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz
npm http GET https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz
npm http 200 https://registry.npmjs.org/css-parse/-/css-parse-1.6.0.tgz
npm http 304 https://registry.npmjs.org/minimatch
npm http GET https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz
npm http 304 https://registry.npmjs.org/dateformat/1.0.2-1.2.3
npm http GET https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz
npm http GET https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz
npm http GET https://registry.npmjs.org/async/-/async-0.2.9.tgz
npm http GET https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz
npm http 200 https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.13.tgz

npm http 304 https://registry.npmjs.org/which
npm http GET https://registry.npmjs.org/which/-/which-1.0.5.tgz
npm http 304 https://registry.npmjs.org/findup-sync
npm http GET https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.2.tgz
npm http 304 https://registry.npmjs.org/underscore.string
npm http 200 https://registry.npmjs.org/colors/-/colors-0.6.2.tgz
npm http GET https://registry.npmjs.org/underscore.string/-/underscore.string-2.
2.1.tgz
npm http 304 https://registry.npmjs.org/lodash
npm http GET https://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz
npm http 304 https://registry.npmjs.org/glob
npm http 200 https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz
npm http GET https://registry.npmjs.org/glob/-/glob-3.1.21.tgz
npm http 304 https://registry.npmjs.org/js-yaml
npm http GET https://registry.npmjs.org/js-yaml/-/js-yaml-2.0.5.tgz
npm http 200 https://registry.npmjs.org/commander/-/commander-1.3.2.tgz
npm http GET https://registry.npmjs.org/keypress/-/keypress-0.1.0.tgz
npm http 304 https://registry.npmjs.org/iconv-lite
npm http GET https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz
npm http 304 https://registry.npmjs.org/exit
npm http GET https://registry.npmjs.org/exit/-/exit-0.1.2.tgz
npm http 304 https://registry.npmjs.org/wordwrap
npm http GET https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz
npm http 200 https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz
npm http 304 https://registry.npmjs.org/amdefine
npm http GET https://registry.npmjs.org/amdefine/-/amdefine-0.1.0.tgz
npm http 200 https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz
npm http 304 https://registry.npmjs.org/getobject
npm http 200 https://registry.npmjs.org/async/-/async-0.1.22.tgz
npm http GET https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz
npm http 200 https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz
npm http 200 https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz
npm http 200 https://registry.npmjs.org/rimraf/-/rimraf-2.0.3.tgz
npm http 200 https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz
npm http 200 https://registry.npmjs.org/async/-/async-0.2.9.tgz
npm http 200 https://registry.npmjs.org/which/-/which-1.0.5.tgz
npm http 200 https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz
npm http 200 https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.2.tgz
npm http 200 https://registry.npmjs.org/underscore.string/-/underscore.string-2.
2.1.tgz
npm http 200 https://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz
npm http 200 https://registry.npmjs.org/glob/-/glob-3.1.21.tgz
npm http 200 https://registry.npmjs.org/js-yaml/-/js-yaml-2.0.5.tgz
npm http 200 https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz
npm http 200 https://registry.npmjs.org/exit/-/exit-0.1.2.tgz
npm http 200 https://registry.npmjs.org/keypress/-/keypress-0.1.0.tgz
npm http 200 https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz
npm http 200 https://registry.npmjs.org/amdefine/-/amdefine-0.1.0.tgz
npm http 200 https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz
npm http GET https://registry.npmjs.org/graceful-fs
npm http GET https://registry.npmjs.org/abbrev
npm http GET https://registry.npmjs.org/lodash
npm http GET https://registry.npmjs.org/lru-cache
npm http GET https://registry.npmjs.org/sigmund
npm http GET https://registry.npmjs.org/graceful-fs
npm http GET https://registry.npmjs.org/inherits
npm http GET https://registry.npmjs.org/argparse
npm http GET https://registry.npmjs.org/esprima
npm http 304 https://registry.npmjs.org/sigmund
npm http 304 https://registry.npmjs.org/lru-cache
npm http GET https://registry.npmjs.org/sigmund/-/sigmund-1.0.0.tgz
npm http GET https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz
npm http 304 https://registry.npmjs.org/lodash
npm http GET https://registry.npmjs.org/lodash/-/lodash-1.0.1.tgz
npm http 304 https://registry.npmjs.org/graceful-fs
npm http 304 https://registry.npmjs.org/inherits
npm http GET https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz
npm http GET https://registry.npmjs.org/inherits/-/inherits-1.0.0.tgz
npm http 304 https://registry.npmjs.org/esprima
npm http GET https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz
npm http 200 https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz
npm http 304 https://registry.npmjs.org/argparse
npm http GET https://registry.npmjs.org/argparse/-/argparse-0.1.15.tgz
npm http 200 https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz
npm http 200 https://registry.npmjs.org/inherits/-/inherits-1.0.0.tgz
npm http 200 https://registry.npmjs.org/argparse/-/argparse-0.1.15.tgz
npm http 304 https://registry.npmjs.org/abbrev
npm http GET https://registry.npmjs.org/abbrev/-/abbrev-1.0.4.tgz
npm http GET https://registry.npmjs.org/underscore
npm http GET https://registry.npmjs.org/underscore.string
npm http 200 https://registry.npmjs.org/abbrev/-/abbrev-1.0.4.tgz
npm http 200 https://registry.npmjs.org/sigmund/-/sigmund-1.0.0.tgz
npm http 304 https://registry.npmjs.org/underscore
npm http 304 https://registry.npmjs.org/underscore.string
npm http GET https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz
npm http GET https://registry.npmjs.org/underscore.string/-/underscore.string-2.
3.3.tgz
npm http 200 https://registry.npmjs.org/underscore.string/-/underscore.string-2.
3.3.tgz
npm http 200 https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz
npm http 200 https://registry.npmjs.org/lodash/-/lodash-1.0.1.tgz
npm http 200 https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz
npm http 304 https://registry.npmjs.org/graceful-fs
npm http GET https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.1.14.tgz
npm http 200 https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.1.14.tgz
C:\Users\admin\AppData\Roaming\npm\spm-build -> C:\Users\admin\AppData\Roaming\n
pm\node_modules\spm-build\bin\spm-build

[email protected] postinstall C:\Users\admin\AppData\Roaming\npm\node_modules\s
pm-build
node scripts/postinstall.js

如何设置spm build依赖的grunttask的参数? 比如我想设置uglify的options

我在spm-build的config.js中看到这样代码,感觉应该可以设置,但是不知道怎么传入这个options


['paths', 'idleading', 'debug', 'handlebars', 'uglify'].forEach(function(key) {
    if (options.hasOwnProperty(key)) {
      spmConfig.options[key] = options[key];
      cssConfig.options[key] = options[key];
    }
  });

在index.js中也看到这样的代码


exports = module.exports = function(options) {

  process.on('log.warn', function(msg) {
    grunt.log.warn('warn ' + msg);
  });
  process.on('log.info', function(msg) {
    grunt.log.writeln('info ' + msg);
  });
  _cache = options;

  options = parseOptions(options);

grunt与grunt-spm-build 冲突问题

Gruntfile:

 grunt.initConfig({
        pkg: grunt.file.readJSON("package.json"), 
        copy: {
            main: {
                files: [
                  { expand: true, cwd: 'dist/', src: ['**'], dest: 'sea-modules/<%= pkg.family %>/<%= pkg.name %>/<%= pkg.version %>', filter: 'isFile' }, // includes files in path                 
                ]
            }
        },
        apidoc: {
            app: {
                src: "lib/",
                dest: "apidoc/",
                options: {
                    debug: true,
                    includeFilters: [".*\\.js$"],
                    excludeFilters: ["node_modules/","sea-modules/"]
                }
            }
        }
    })
    var init = require('grunt-spm-build').initConfig;
    init(grunt, { pkg: "package.json" });

    grunt.loadNpmTasks("grunt-spm-build")
    grunt.loadNpmTasks('grunt-contrib-copy');
    grunt.loadNpmTasks('grunt-apidoc');

    grunt.registerTask('deploy', ["spm-build", "copy", "apidoc:app"]);

我希望使用grunt-spm-build之后,用copy task将build结果move到sea-modules相关目录下,程序报错,显示copy有冲突.尝试发现copy配置,好像不支持形如apidoc:app的target方式,

第一次提问,关于spm2 build

  1. spm2中,插件spm-build使用的package.json文件示例: http://docs.spmjs.org/en/package 其中 "output": ["base.js", "i18n/"]部分有详细的说明文档么? 其是否还支持spm1..* 文档中提到的各种配置方式,
  2. "spm" :{} 节点是否有详细的说明文档?例如:devAlias engines platforms 这几个配置节什么意思?

装不起spm-build

npm http GET https://registry.npmjs.org/amdefine
npm http GET https://registry.npmjs.org/underscore
npm http 304 https://registry.npmjs.org/underscore
npm http 304 https://registry.npmjs.org/amdefine
/usr/local/bin/spm-build -> /usr/local/lib/node_modules/spm-build/bin/spm-build

[email protected] postinstall /usr/local/lib/node_modules/spm-build
node scripts/postinstall.js

EACCES, permission denied '/root/.spm'
you need install spm to register the program

$ npm install spm -g

if you have installed spm, it maybe you haven't set a NODE_PATH environment variable

[email protected] /usr/local/lib/node_modules/spm-build
├── [email protected]
├── [email protected] ([email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected])
├── [email protected]
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected])

spm-build可以如何自定义?

spm-build可以自定义吗?
比如说:

  • 默认下载的模块都放在当前目录的sea-modules中,我想放在别的地方
  • 默认会将build的结果放在当前目录的dist中,我想直接按照family/name/version/*.js的结构放在上层的sea-modules中

spm-build v0.3.17 output问题

在0.3.13中可以output可以out:["images/"]或者[""] 都可以构建到src/下的images目录 在0.3.17中移除了这样的设定么?

安装spm出错,哪一步出的问题呢?

1.先到官网下 nodejs 64位 安装程序,点击进行默认安装(我的电脑是win7 64位的)然后设置了path 和 NODE_PATH
2.在控制台下查看到自己的 node -v 是 v0.10.21, npm -v 是 1.3.11
3.执行npm install spm -g 之后,查看版本

C:>spm -v

Options:

-h, --help     output usage information
-V, --version  output the version number

System Commands:

plugin         plugin system for spm
config         configuration for spm
help           show help information

Package Commands:

tree           show dependencies tree
info           information of a module
login          login your account
search         search modules
install        install a module
publish        publish a module
unpublish      unpublish a module

Error: ENOENT, no such file or directory 'C:\Users\Administrator.spm\autoupdate'
at Object.fs.openSync (fs.js:427:18)
at Object.fs.writeFileSync (fs.js:966:15)
at Request._callback (C:\Users\Administrator\AppData\Roaming\npm\node_modules\spm\lib\utils\check-update.js:43:8)
at Request.self.callback (C:\Users\Administrator\AppData\Roaming\npm\node_modules\spm\node_modules\request\index.js:148
:22)
at Request.EventEmitter.emit (events.js:98:17)
at Request. (C:\Users\Administrator\AppData\Roaming\npm\node_modules\spm\node_modules\request\index.js:891:1
4)
at Request.EventEmitter.emit (events.js:117:20)
at IncomingMessage. (C:\Users\Administrator\AppData\Roaming\npm\node_modules\spm\node_modules\request\index.
js:842:12)
at IncomingMessage.EventEmitter.emit (events.js:117:20)
at _stream_readable.js:920:16

就出现了这样的情况 只要 是对 spm 的命令行操作都会出现如上3的输出,慌了,不知道该这样做了,有没有同我一样遭遇的亲,求解答

output 支持的对象有问题

如果 output 为

"output": {
  "knight.js": "knight.js",
  "zeroclipboard.swf": "biz/zeroclipboard.swf",
  "zeroclipboard10.swf": "biz/zeroclipboard10.swf"
}

spm build 不报错也不执行,看起来是解析错误

win7下安装spm-build失败

步骤:
1 安装npm:
1.1 在nodejs官网上下载node-v0.10.12-x64.msi
1.2 以win7管理员身份运行node-v0.10.12-x64.msi
1.3 安装路径设定为:D:\Program Files\nodejs
2 安装spm:
2.1 以管理员身份运行win7命令提示符
2.2 命令行输入npm -v,显示:1.2.32
2.3 命令行输入npm install spm -g
2.4 输出log如下:
npm http GET https://registry.npmjs.org/spm
npm http 304 https://registry.npmjs.org/spm
npm http GET https://registry.npmjs.org/inherits
npm http GET https://registry.npmjs.org/win-spawn
npm http GET https://registry.npmjs.org/fstream-ignore
npm http GET https://registry.npmjs.org/spmrc
npm http GET https://registry.npmjs.org/fstream
npm http GET https://registry.npmjs.org/semver
npm http GET https://registry.npmjs.org/form-data
npm http GET https://registry.npmjs.org/colorful
npm http GET https://registry.npmjs.org/tar
npm http GET https://registry.npmjs.org/commander
npm http GET https://registry.npmjs.org/cmd-util
npm http GET https://registry.npmjs.org/async
npm http GET https://registry.npmjs.org/request
npm http GET https://registry.npmjs.org/archy
npm http GET https://registry.npmjs.org/rimraf
npm http GET https://registry.npmjs.org/lodash
npm http 304 https://registry.npmjs.org/fstream
npm http 304 https://registry.npmjs.org/inherits
npm http 304 https://registry.npmjs.org/win-spawn
npm http 304 https://registry.npmjs.org/spmrc
npm WARN package.json [email protected] No repository field.
npm http 304 https://registry.npmjs.org/fstream-ignore
npm http 304 https://registry.npmjs.org/semver
npm http 304 https://registry.npmjs.org/form-data
npm http 304 https://registry.npmjs.org/colorful
npm http 304 https://registry.npmjs.org/tar
npm http 304 https://registry.npmjs.org/commander
npm http 304 https://registry.npmjs.org/cmd-util
npm http 304 https://registry.npmjs.org/async
npm http 304 https://registry.npmjs.org/request
npm http 304 https://registry.npmjs.org/archy
npm http 304 https://registry.npmjs.org/rimraf
npm http 304 https://registry.npmjs.org/lodash
npm http GET https://registry.npmjs.org/combined-stream
npm http GET https://registry.npmjs.org/mime
npm http GET https://registry.npmjs.org/graceful-fs
npm http GET https://registry.npmjs.org/keypress
npm http GET https://registry.npmjs.org/minimatch
npm http GET https://registry.npmjs.org/mkdirp
npm http GET https://registry.npmjs.org/graceful-fs
npm http GET https://registry.npmjs.org/block-stream
npm http GET https://registry.npmjs.org/uglify-js
npm http GET https://registry.npmjs.org/forever-agent
npm http GET https://registry.npmjs.org/mime
npm http GET https://registry.npmjs.org/aws-sign
npm http GET https://registry.npmjs.org/node-uuid
npm http GET https://registry.npmjs.org/oauth-sign
npm http GET https://registry.npmjs.org/cookie-jar
npm http GET https://registry.npmjs.org/tunnel-agent
npm http GET https://registry.npmjs.org/qs
npm http GET https://registry.npmjs.org/json-stringify-safe
npm http GET https://registry.npmjs.org/hawk
npm http 304 https://registry.npmjs.org/graceful-fs
npm http 304 https://registry.npmjs.org/combined-stream
npm http 304 https://registry.npmjs.org/mime
npm http 304 https://registry.npmjs.org/minimatch
npm http 304 https://registry.npmjs.org/keypress
npm http GET https://registry.npmjs.org/lru-cache
npm http GET https://registry.npmjs.org/sigmund
npm http GET https://registry.npmjs.org/delayed-stream/0.0.5
npm http 304 https://registry.npmjs.org/mkdirp
npm http 304 https://registry.npmjs.org/graceful-fs
npm http 304 https://registry.npmjs.org/block-stream
npm http 304 https://registry.npmjs.org/uglify-js
npm http 304 https://registry.npmjs.org/forever-agent
npm WARN package.json [email protected] No readme data.
npm http GET https://registry.npmjs.org/optimist
npm http GET https://registry.npmjs.org/source-map
npm http 304 https://registry.npmjs.org/mime
npm http 304 https://registry.npmjs.org/aws-sign
npm WARN package.json [email protected] No readme data.
npm http 304 https://registry.npmjs.org/node-uuid
npm http 304 https://registry.npmjs.org/oauth-sign
npm WARN package.json [email protected] No readme data.
npm http 304 https://registry.npmjs.org/cookie-jar
npm WARN package.json [email protected] No readme data.
npm http 304 https://registry.npmjs.org/tunnel-agent
npm WARN package.json [email protected] No readme data.
npm http 304 https://registry.npmjs.org/qs
npm http 304 https://registry.npmjs.org/json-stringify-safe
npm http 304 https://registry.npmjs.org/hawk
npm http 304 https://registry.npmjs.org/lru-cache
npm WARN engine [email protected]: wanted: {"node":"0.8.x"} (current: {"node":"v0.10.1
2","npm":"1.2.32"})
npm http 304 https://registry.npmjs.org/sigmund
npm http GET https://registry.npmjs.org/cryptiles
npm http GET https://registry.npmjs.org/boom
npm http GET https://registry.npmjs.org/hoek
npm http 304 https://registry.npmjs.org/delayed-stream/0.0.5
npm http GET https://registry.npmjs.org/sntp
npm http 304 https://registry.npmjs.org/optimist
npm http 304 https://registry.npmjs.org/source-map
npm http GET https://registry.npmjs.org/wordwrap
npm http GET https://registry.npmjs.org/amdefine
npm http 304 https://registry.npmjs.org/hoek
npm http 304 https://registry.npmjs.org/sntp
npm http 304 https://registry.npmjs.org/amdefine
npm http 304 https://registry.npmjs.org/boom
npm http 304 https://registry.npmjs.org/cryptiles
npm WARN engine [email protected]: wanted: {"node":"0.8.x"} (current: {"node":"v0.10.12
","npm":"1.2.32"})
npm WARN engine [email protected]: wanted: {"node":"0.8.x"} (current: {"node":"v0.10.12
","npm":"1.2.32"})
npm WARN engine [email protected]: wanted: {"node":"0.8.x"} (current: {"node":"v0.10.12
","npm":"1.2.32"})
npm WARN engine [email protected]: wanted: {"node":"0.8.x"} (current: {"node":"v0.
10.12","npm":"1.2.32"})
npm http 304 https://registry.npmjs.org/wordwrap
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] 'repositories' (plural) Not supported.
npm WARN package.json Please pick one as the 'repository' field
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No repository field.
2.5 命令行输入spm -V,显示:2.1.6
3 安装spm-build
3.1 命令行输入npm install spm-build
3.2 输出log如下:
npm http GET https://registry.npmjs.org/spm-build
npm http 304 https://registry.npmjs.org/spm-build
npm http GET https://registry.npmjs.org/commander
npm http GET https://registry.npmjs.org/grunt-cmd-transport
npm http GET https://registry.npmjs.org/grunt-cmd-concat
npm http GET https://registry.npmjs.org/grunt-contrib-copy
npm http GET https://registry.npmjs.org/grunt-contrib-uglify
npm http GET https://registry.npmjs.org/grunt-contrib-clean
npm http GET https://registry.npmjs.org/spmrc
npm http GET https://registry.npmjs.org/grunt-contrib-cssmin
npm http GET https://registry.npmjs.org/spm-grunt
npm http 304 https://registry.npmjs.org/grunt-cmd-transport
npm http 304 https://registry.npmjs.org/grunt-cmd-concat
npm http 304 https://registry.npmjs.org/grunt-contrib-uglify
npm http 304 https://registry.npmjs.org/commander
npm http 304 https://registry.npmjs.org/grunt-contrib-copy
npm http 304 https://registry.npmjs.org/grunt-contrib-clean
npm http 304 https://registry.npmjs.org/spmrc
npm WARN package.json [email protected] No repository field.
npm http 304 https://registry.npmjs.org/grunt-contrib-cssmin
npm http 304 https://registry.npmjs.org/spm-grunt
npm http GET https://registry.npmjs.org/grunt
npm http GET https://registry.npmjs.org/keypress
npm http GET https://registry.npmjs.org/clean-css
npm http GET https://registry.npmjs.org/cmd-util
npm http GET https://registry.npmjs.org/handlebars/1.0.11
npm http GET https://registry.npmjs.org/uglify-js
npm http GET https://registry.npmjs.org/css
npm http GET https://registry.npmjs.org/grunt
npm http GET https://registry.npmjs.org/clean-css
npm http GET https://registry.npmjs.org/grunt-lib-contrib
npm http GET https://registry.npmjs.org/cmd-util
npm http GET https://registry.npmjs.org/uglify-js
npm http 304 https://registry.npmjs.org/keypress
npm http 304 https://registry.npmjs.org/grunt
npm http 304 https://registry.npmjs.org/clean-css
npm http 304 https://registry.npmjs.org/cmd-util
npm http 304 https://registry.npmjs.org/handlebars/1.0.11
npm http 304 https://registry.npmjs.org/uglify-js
npm http 304 https://registry.npmjs.org/css
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] 'repositories' (plural) Not supported.
npm WARN package.json Please pick one as the 'repository' field
npm WARN package.json [email protected] No repository field.
npm http 304 https://registry.npmjs.org/grunt
npm http 304 https://registry.npmjs.org/clean-css
npm http 304 https://registry.npmjs.org/grunt-lib-contrib
npm http GET https://registry.npmjs.org/coffee-script
npm http GET https://registry.npmjs.org/css-parse/1.5.0
npm http GET https://registry.npmjs.org/css-stringify/1.3.1
npm http GET https://registry.npmjs.org/colors
npm http GET https://registry.npmjs.org/dateformat/1.0.2-1.2.3
npm http GET https://registry.npmjs.org/eventemitter2
npm http GET https://registry.npmjs.org/findup-sync
npm http GET https://registry.npmjs.org/glob
npm http GET https://registry.npmjs.org/hooker
npm http GET https://registry.npmjs.org/iconv-lite
npm http GET https://registry.npmjs.org/async
npm http GET https://registry.npmjs.org/minimatch
npm http GET https://registry.npmjs.org/nopt
npm http GET https://registry.npmjs.org/rimraf
npm http GET https://registry.npmjs.org/underscore.string
npm http GET https://registry.npmjs.org/which
npm http GET https://registry.npmjs.org/js-yaml
npm http GET https://registry.npmjs.org/lodash
npm http 304 https://registry.npmjs.org/cmd-util
npm http 304 https://registry.npmjs.org/uglify-js
npm http GET https://registry.npmjs.org/zlib-browserify/0.0.1
npm http GET https://registry.npmjs.org/optimist
npm http GET https://registry.npmjs.org/optimist
npm http GET https://registry.npmjs.org/source-map
npm http GET https://registry.npmjs.org/async
npm http 304 https://registry.npmjs.org/colors
npm http 304 https://registry.npmjs.org/dateformat/1.0.2-1.2.3
npm WARN package.json [email protected] No repository field.
npm http 304 https://registry.npmjs.org/eventemitter2
npm http 304 https://registry.npmjs.org/findup-sync
npm http 304 https://registry.npmjs.org/glob
npm http 304 https://registry.npmjs.org/hooker
npm http 304 https://registry.npmjs.org/iconv-lite
npm http 304 https://registry.npmjs.org/async
npm http 304 https://registry.npmjs.org/minimatch
npm http 304 https://registry.npmjs.org/nopt
npm http 304 https://registry.npmjs.org/rimraf
npm http 304 https://registry.npmjs.org/underscore.string
npm http 304 https://registry.npmjs.org/which
npm http 304 https://registry.npmjs.org/css-stringify/1.3.1
npm WARN package.json [email protected] No repository field.
npm http 304 https://registry.npmjs.org/coffee-script
npm http 304 https://registry.npmjs.org/js-yaml
npm http 304 https://registry.npmjs.org/css-parse/1.5.0
npm WARN package.json [email protected] No repository field.
npm http 304 https://registry.npmjs.org/lodash
npm http 304 https://registry.npmjs.org/zlib-browserify/0.0.1
npm http 304 https://registry.npmjs.org/optimist
npm http 304 https://registry.npmjs.org/optimist
npm http 304 https://registry.npmjs.org/source-map
npm http 304 https://registry.npmjs.org/async
npm http GET https://registry.npmjs.org/graceful-fs
npm http GET https://registry.npmjs.org/abbrev
npm http GET https://registry.npmjs.org/lru-cache
npm http GET https://registry.npmjs.org/sigmund
npm http GET https://registry.npmjs.org/graceful-fs
npm http GET https://registry.npmjs.org/inherits
npm http GET https://registry.npmjs.org/wordwrap
npm http GET https://registry.npmjs.org/esprima
npm http GET https://registry.npmjs.org/argparse
npm http GET https://registry.npmjs.org/amdefine
npm http 304 https://registry.npmjs.org/graceful-fs
npm http 304 https://registry.npmjs.org/abbrev
npm http 304 https://registry.npmjs.org/sigmund
npm http 304 https://registry.npmjs.org/lru-cache
npm http 304 https://registry.npmjs.org/graceful-fs
npm http 304 https://registry.npmjs.org/inherits
npm http 304 https://registry.npmjs.org/wordwrap
npm http 304 https://registry.npmjs.org/esprima
npm http 304 https://registry.npmjs.org/amdefine
npm http 304 https://registry.npmjs.org/argparse
npm http GET https://registry.npmjs.org/underscore
npm http 304 https://registry.npmjs.org/underscore

[email protected] postinstall C:\Users\itoware.ITOWARE-WANGDON\node_modules\spm-
build
node scripts/postinstall.js

[email protected] node_modules\spm-build
├── [email protected]
├── [email protected] ([email protected])
├── [email protected]
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected], [email protected], [email protected]
, [email protected], [email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected], [email protected], [email protected], hooker@
0.2.3, [email protected], [email protected], [email protected], underscore.strin
[email protected], [email protected], [email protected], [email protected], [email protected], rimr
[email protected], [email protected], [email protected], [email protected])
└── [email protected]
3.3 命令行输入spm build,提示:
build is not a part of spm now. You can install it:
$ npm install spm-build -g

spm build 问题

Task: "spm-newline" task
warn: { [Error: ENOENT, no such file or directory 'dist'] errno: 34, code: 'ENOENT', path: 'dist', syscall: 'readdir' }

       Done: but with warnings.

spm publish error: permission denied

I got a problem..I create a project. then use spm build. spm login. its all ok. BUT. when i use spm publish. it alerts error: permission denied. Im a newbie. i dont know whats the problem. please help!
qq 20141008111328

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.