npm 使用记录
在 Mint 下安装 pencil,折腾半天,发现它对 firefox 的支持,只到 46.0 。本来打算研究下怎么用 xulrunner 来跑 pencil 这个 web 应用,查看项目资源的时候,发现原来他们在筹划用 node.js 来重写项目。虽然还没有正式发布,但是貌似已经可以用了...有点猴急想试试,遂有了后面的尝试。
1. node.js 的安装包
作为 node.js 的应用包,首先应该具备的就是 package.json。下面是这次尝试的 app 中 package.json 的部分内容。
{
"name": "Pencil",
"productName": "Pencil",
"description": "An open-source GUI prototyping tool that is available for ALL platforms.",
"version": "3.0.0-beta.2",
"author": {
"name": "Evolus",
"url": "http://evolus.vn",
"email": "contact@evolus.vn"
},
"maintainers": [
{
"email": "an.duong@evolus.vn",
"name": "dgthanhan"
},
{
"email": "ngtdungnt@gmail.com",
"name": "Nguyen Tien Dzung"
}
],
"copyright": "Copyright © 2008-2016 Evolus. All rights reserved.",
"homepage": "http://pencil.evolus.vn",
...
"dependencies": {
"archiver": "1.0.0",
"electron-squirrel-startup": "1.0.0",
"less": "2.7.1",
"lodash": "4.13.1",
"moment": "2.13.0",
"nugget": "2.0.0",
"q": "1.4.1",
"rimraf": "2.5.2",
"tmp": "0.0.28",
"unzip2": "0.2.5"
},
...
}
从中,我们可以看到这个应用的一些基本信息,如作者版本,license,版本,依赖关系等等。
2. npm
npm 的全称是 node package manager,即 node.js 的安装包管理工具。这类似与红帽子里面的 yum ,以及 debian 里面的 apt-get。
npm 我是用 apt-get 装的,无新意。或者使用脚本安装也可以:
curl http://npmjs.org/install.sh | sh
然后,安装上面 pencil 中的 app。安装使用 npm install指令,该指令会在当前目录中搜索 package.json 文件。
安装完之后,出现的第一个问题是,无法连接到 registry。
npm ERR! Error: failed to fetch from registry:
搜了一下,原来是我大天朝把官方的库地址给墙了的缘故;换源后问题解决。具体是,编辑 "~/.npmrc"文件,并将第一行替换为:
registry = https://r.cnpmjs.org/
更换源之后,继续安装,又出现下面类似问题:
npm ERR! Error: No compatible version found:
提示需要的依赖包版本无法匹配,查看 package.json 。看到关于这个包的定义:
"nugget": "^2.0.0",
而 cnpmjs 提供的包里面,nugget 有以下版本:
npm ERR! message Valid install targets:
npm ERR! message ["1.6.2","2.0.0","1.6.1","1.5.5","1.6.0","1.5.4","1.5.3","1.5.2","1.5.1","1.5.0","1.4.1","1.4.0","1.3.0","1.2.0","1.1.3","1.1.2","1.1.1","1.1.0","1.0.0"]
那么 “^” 是什么意思呢?在 stackflow 上找到一篇问答,摘录如下:
~versionAllows patch-level changes if a minor version is specified on the comparator^versionAllows changes that do not modify the left-most non-zero digit in the[major,minor,patch]tupleversionMust match version exactly>versionMust be greater than version>=versionetc<version<=version1.2.x1.2.0, 1.2.1, etc., but not 1.3.0http://sometarballurl(this may be the URL of a tarball which will be downloaded and installed locally*Matches any version
那么,使用 ^ 意味着,这个代码包的版本必须大于等于指定版本,且主版本号不能改变。所以,被选有 2.0.0 的,那为什么没法匹配呢?且先不管,我这里的做法是,直接改为固定版本,及去掉 “^”。然后,依赖关系检查,以及代码包下载,顺利完成。
安装的最后,跳出如下提示:
npm ERR! Not compatible with your version of node/npm: archiver@1.0.
npm ERR! Required: {"node":">= 0.10.0"}
npm ERR! Actual: {"npm":"1.1.4","node":"0.6.12"}
node 版本不匹配。
猝。
3. nvm, node version manager
在刚查阅的各种资料中,找到有个叫 nvm 的家伙。可以支持系统安装多个版本的 node.js , 并可以在各个版本间切换。如此的话,使用更高版本的 node 也就没问题了。
有空再试。
npm 使用记录的更多相关文章
- npm 错误记录
npm run dev iview-weapp@1.1.0 dev /Users/Jovins/Desktop/小程序/iview-weapp gulp --gulpfile build/build- ...
- 好用的npm模块记录
标签: node node盛行的今天,前端开发已经离不开npm模块的使用,大名鼎鼎的如gulp,webpack等,此处不多说,除了它们有那么几个常用的npm模块是我喜欢并依赖它的,下面就是我平时工作中 ...
- phonegap3.5了结
搞了三天的phonegap3.5.最后怎么搞都搞不好了.修改了www中的index.html的内容,clean也不行,在node.js中cordova build也不行. 反正就是apk没有更新啦.至 ...
- winston日志管理2
上次讲到 Exceptions 例外 Handling Uncaught Exceptions with winston 使用winston处理未捕获的异常(这个如果对于异步,我不是很喜欢用) 使用 ...
- 关于node.js和npm,cnpm的安装记录以及gulp自动构建工具的使用
关于node.js和npm,cnpm的安装记录以及gulp自动构建工具的使用 工作环境:window下 在一切的最开始,安装node.js (中文站,更新比较慢http://nodejs.cn/) ...
- 关于npm --save还是-save的横岗数量的细节的记录
最近又开始鼓捣npm了,所以得稍微记录一下. 首先是npm install xxx --save 和 npm install xxx -save这两的区别(注意加粗的部分,横杠数不一样).当我搜索-- ...
- Centos下Nodejs+npm环境-部署记录
公司的一个项目上线,需要用到Nodejs和npm环境,这里记录下安装过程,方便回看同时供大家参考. 1)yum安装方式(版本比较老点,v5.12.0 + 3.8.6) 需要在centos中添加epel ...
- npm包发布记录
下雪了,在家闲着,不如写一个npm 包发布.简单的 npm 包的发布网上有很多教程,我就不记录了.这里记录下,一个复杂的 npm 包发布,复杂指的构建环境复杂. 整个工程使用 rollup 来构建,其 ...
- 【NPM】使用问题记录
[NPM]使用问题记录 =========================================================================== 1.MSBUILD : ...
随机推荐
- 我们为什么要使用maven,公司推行maven杂谈
最近在公司内推荐使用maven,推荐一个落后于业内十年的技术,实在没什么好说的,可是没想到遇到了前所未有的阻力,总是听到各种各样的质疑,我就闹不明白了,推行这个东西是为了更规范的管理项目成果,方便大家 ...
- SqlServer--聚合函数
--聚合函数默认把整个表中的数据当做"一组",然后才进行的统计. select * from NewPerson --统计出所有人的年龄的总和 select sum(age) as ...
- Linux下开启关闭SeLinux
SELinux (Security-Enhanced Linux) in Fedora is an implementation of mandatory access control in the ...
- Symantec Backup Exec Agent For Linux防火墙问题
如果在Unix或Linux安装配置好了Symantec Backup Exec Agent For Linux,但是在Symantec Backup Exec服务端无法访问Symantec Backu ...
- MYSQL服务器my.cnf配置文档详解
MYSQL服务器my.cnf配置文档详解 硬件:内存16G [client] port = 3306 socket = /data/3306/mysql.sock [mysql] no-auto-re ...
- 为什么基于TCP UDP服务的一些简单服务端口号都是奇数
TCP是有NCP(网络控制协议)派生出来的,NCP是单工的,通信需要两个链接,所以会预留奇偶端口号.当TCP/UDP成为传输层协议,每个程序只是用一个端口号,且使用奇端口号.
- .replace(R.id.container, new User()).commit();/The method replace(int, Fragment) in the type FragmentTransaction is not app
提示错误:The method replace(int, Fragment) in the type FragmentTransaction is not applicable for the arg ...
- 常用算法——排序(三)
希尔排序法 希尔排序又称为缩小增量排序,也属于插入排序类的算法,是对直接插入排序的一种改进. 基本思想就是:将需要排序的序列划分为若干个较小的序列,对这些序列进行直接插入排序,通过这样的操作可使用需要 ...
- Apache、nginx配置的网站127.0.0.1可以正常访问,内外网的ip地址无法访问,谁的锅?
最近做开发,发现一个比较尴尬的问题.因为我是一个web开发者,经常要用到Apache或者nginx等服务器软件,经过我测试发现,只要我打开了adsafe,我便不能通过ip地址访问我本地的网站了,比如我 ...
- Bootstrap CSS 表单
表单布局 Bootstrap 提供了下列类型的表单布局: 垂直表单(默认) 内联表单 水平表单 垂直或基本表单 基本的表单结构是 Bootstrap 自带的,个别的表单控件自动接收一些全局样式.下面列 ...