用 Python 眼光看Nodejs(二),安装及npm配置
上一节说过,以搜集文章为主,然后自己总结一些常用的知识当做笔记,可能不完整与基础,更多的是给自己做记录。学习一门新的语言,从安装到简单用法开始。所以从Nodejs的安装,运行,代码的导入,以及一般项目的代码组织与部署开始,不用太过于深入,了解大概流程就行,不可能记住所有的命令与用法,只要知道有这个功能大概长什么样,然后去官网手册翻看一下最佳
1. Nodejs安装
1 |
|
其实我一开始直接下载官网编译好的nodejs,之后做命令的链接,如这边的安装教程,也很好理解。但是后来发现一个问题,全局装一些带有命令行的库时,比如express-generator,命令行没有express该命令,需要将express库的bin文件手动连接到/usr/local/bin/express,略微麻烦
当然还有最稳妥的方法,源码安装,去nodejs官网下载source code,然后./configure
,make
,make install
(我在命令前加sudo,然后发现npm install也需要加sudo,不太一样),源码安装有点耗时,我那破机器花了半小时
2. Nodejs模块包库的解释与代码的组织
写到这边时,遇到一些基础概念,自己都有些蒙了,查了蛮久资料,理了一下
先回味下Python的相关含义:
module:一个 .py 文件就是个 module
lib:抽象概念,和另外两个不是一类,只要你喜欢,什么都是 lib,就算只有个 hello world
package:就是个带 init.py 的文件夹,并不在乎里面有什么,不过一般来讲会包含一些 packages/modulesscrapy、flask、Django、numpy、scipy、NLTK、jieba 在你的语境下,一般都被认为是 lib,因为关注点不是他们的代码是怎么组织的。
看了上面的解释,再结合这篇文章 Python 中的黑暗角落(三):模块与包我明白的更多了
再来说说Nodejs,其实也可以同样的理解,一个打印‘hello world’的js文件是一个模块(module),一个带有package.json的文件夹都是包(package)比如express框架,但是它们都是库(lib),因为都是给别人或者自己来用的,只是我们平常接触的一个些库都不是单个文件那么简单的,大多以包的形式存在。
接下来是Nodejs代码组织与部署中间有困惑记录下来
Node.js模块里exports与module.exports的区别?
相关笔记1,相关笔记2
3. npm命令
npm之于Nodejs,如,pip之余Python
所以这里把一些常用的命令记录下来,以后就方便翻了
查看npm拥有的全部命令
$ npm - -help
$ npm help
查看某一个npm命令的详细用法
$ npm <command> --help
$ npm help <command>
与npmrc相关的三个文件:
npm项目配置文件:/path/to/my/project/.npmrc
用户配置文件:~/.npmrc (可通过npm config get userconfig
查看)
全局配置文件:$PREFIX/etc/npmrc (可通过npm config get globalconfig
查看)
npm内置配置文件:/path/to/npm/npmrc
npm获取配置的6种方式(优先级从高到低):
1.命令行参数
$ --proxy http://<server>:<port>
2.环境变量
以”npmconfig”为前缀的环境变量将会被认为是npm的配置属性。$ npm_config_proxy=http://<server>:<port>
3.用户配置文件
查看用户配置文件路径$ npm config get userconfig
Linux系统默认路径$HOME/.npmrc
4.全局配置文件
查看文件路径$ npm config get globalconfig
我的ubuntu文件路径/usr/local/node-v10.15.3-linux-x64/etc/npmrc
5.内置配置文件
安装npm的目录下的npmrc文件。
6.默认配置
如果前5条均未设置,npm会使用默认配置参数。
关于npm的配置主要命令可通过npm config - -help来查看(比如用npm config ls -l查看npm全部默认配置)。但是一样,作为简单用户我们没必要用的这么多,我们平常只要设置一个user config,我pip就是这么搞2333。设置也就换换npm注册源来增加下载速度(将registry=https://registry.npm.taobao.org放入~/.npmrc,没有这个文件则新建一个,npm c get registry来验证换了没,上传包记得换回来,不过基本用不到)
npm info 命令可以查看每个模块的具体信息
$ npm info <package>
以树形结构列出当前项目安装的所有模块,以及它们依赖的模块
1 |
|
使用 npm 安装包
npm install/i <package_name>
在npm install部分,有很多东西值得注意的,比如全局与本地的区别,npm是默认本地安装,像极了python的虚拟环境,完全独立,不用了把文件夹删了就行,很赞。还有开发依赖,生产依赖。所以后来python的pipenv诞生了,吸取了其他包管理器比如npm等的一些优点,已被官方推荐使用
执行package.json中的脚本
npm run
**以上都是些简单的概括,具体的看这npm全面介绍**以及官网手册,东西很多,挑你用得着的看
推荐的npm库版本管理工具
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!