npm

npm init

npm init 初始化当前目录为一个npm模块,逐步询问并确认信息后生成一个 package.json 文件
npm init -y 直接生成 package.json 文件

package.json 文件描述:http://package.json.is/

npm install

npm install == npm i == npm add

npm install 安装包

package(包)

  • a. 包含文件描述的程序的 package.json 文件夹
  • b. 包含 a 的压缩tarball
  • c. 解析为 b 的网址
  • d. <name>@<version> 在npm-registry(c)的注册表中发布的a
  • e. 指向 da <name>@<tag>(参见npm-dist-tag)
  • f. <name> 具有满足 e 的“最新”标签的a
  • g. <git remote url> 解析为 aa

即使从未发布过软件包,如果只想编写一个节点程序 a,或者如果还希望能够在打包后将其轻松安装到其他地方,使用npm仍然可以获得很多好处。放入压缩档 b

  • npm install

    将安装依赖到当前目录的 node_modules 文件夹中。全局模式下(带-g--global参数),它将当前程序包上下文(即,当前工作目录)安装为全局程序包。
    默认安装 package.json 文件中的列为依赖项的所有模块,带参数 --production 将不安装 devDependencies依赖

  • npm install [<@scope>/]<name>

    进行 <name>@<tag> 安装,<tag> “标签”配置在哪里。(请参阅 npm-config。配置的默认值为latest。)
    在大多数情况下,这将安装latest在npm注册表上标记为的模块的版本 。

    例:

    npm install sax

    npm install dependencies 默认将所有指定的软件包保存到其中。此外,可以使用一些其他标志来控制在何处以及如何保存它们:

    -P, --save-prod:包将出现在 dependencies 中。这是默认设置,除非-D或-O存在。
    -D, --save-dev:包将出现在 devDependencies 中。
    -O, --save-optional:包将出现在 optionalDependencies 中。
    --no-save:防止保存到 dependencies。

    使用上述任何选项将依赖项保存到 package.json 时,还有两个附加的可选标志:

    -E, --save-exact 注意:保存的依赖项将使用确切的版本配置,而不是使用npm的默认 semver range 运算符。
    -B, --save-bundle:保存的依赖项也将添加到 bundleDependencies 列表中。
  • npm install [<@scope>/]<name>@<tag>

    安装指定标签引用的软件包的版本。如果该程序包的注册表数据中不存在该标记,则此操作将失败。

    例:

    npm install sax@latest
    npm install @myorg/mypackage@latest
  • npm install [<@scope>/]<name>@<version>

    安装指定版本的软件包。如果该版本尚未发布到注册表,则将失败。

    例:

    npm install sax@0.1.1
    npm install @myorg/privatepackage@1.5.0
  • npm install [<@scope>/]<name>@<version range>

    安装与指定版本范围匹配的软件包版本。这将遵循解决依赖性的相同规则 package.json
    请注意,大多数版本范围必须用引号引起来,以便您的外壳将其视为单个参数。
    例:

    npm install sax@">=0.1.0 <0.2.0"
    npm install @myorg/privatepackage@">=0.1.0 <0.2.0"
  • npm install <git-host>:<git-user>/<repo-name>

  • npm install <git repo url>

  • npm install <tarball file>

    安装位于文件系统上的软件包。注意:如果只想将dev目录链接到npm根目录,则可以使用来更轻松地做到这一点npm link
    Tarball要求:

    文件名必须使用 .tar, .tar.gz 或 .tgz 作为扩展名。
    包装内容应位于tarball的子文件夹中(通常称为package/)。安装软件包时,npm会剥离一个目录层(相当于tar x --strip-components=1运行)。
    程序包必须包含package.json具有name和version属性的文件。

    例:

    npm install ./package.tgz
  • npm install <tarball url>

    提取tarball网址,然后安装它。为了区分此选项和其他选项,参数必须以 http://https:// 开头

    例:

    npm install https://github.com/indexzero/forever/tarball/v0.5.6
  • npm install <folder>

    将软件包作为当前项目中的符号链接安装在目录中。它的依赖项将在链接之前安装。如果 <folder> 位于项目的根目录下,则其依赖关系可能会node_modules像其他类型的依赖关系一样被提升到顶层。

npm install 参数

npm install xxx --global == npm install xxx -g

npm install xxx --production

npm install xxx --save

自动把模块和版本号添加到dependencies部分

npm install xxx --save-dev == npm install xxx -D

自动把模块和版本号添加到devdependencies部分

npm install xxx --save-prod == npm install xxx -P

默认,自动把模块和版本号添加到dependencies部分

npm install xxx --save-optional == npm install xxx -O

npm install xxx --save-exact == npm install xxx -E

npm install xxx --save-bundle == npm install xxx -B

npm install xxx --no-save

阻止把模块和版本号添加到dependencies部分

npm install xxx --dry-run

npm run

npm run <scripts name>

执行 package.json 文件 scripts 块中指定名称的命令

package.json 文件:

1
2
3
4
5
{
"scripts": {
"dev": "node a.js"
}
}

执行 npm run dev 命令,和执行 node a.js 是一样的

npm clean-install

清空已安装模块

npm rebuild

重建所有模块

npm test

npm run test 一样

npm start

npm run start 一样

npm stop

npm run stop 一样

npm publish

发布模块到社区

npm search

寻找模块

npm version

npm及相关模块版本信息

npm uninstall

npm uninstall <name> 移除指定模块