• NPM install -save 和 -save-dev 傻傻分不清


    本文原文地址:https://www.limitcode.com/detail/59a15b1a69e95702e0780249.html

    回顾 npm install 命令

    最近在写Node程序的时候,突然对 npm install 的-save和-save-dev 这两个参数的使用比较混乱。其实博主在这之前对这两个参数的理解也是模糊的,各种查资料和实践后对它们之间的异同点略有理解。遂写下这篇文章避免自己忘记,同时也给node猿友一点指引。

    我们在使用 npm install 安装模块的模块的时候 ,一般会使用下面这几种命令形式:

    npm install moduleName # 安装模块到项目目录下
    
    npm install -g moduleName # -g 的意思是将模块安装到全局,具体安装到磁盘哪个位置,要看 npm config prefix 的位置。
    
    npm install -save moduleName # -save 的意思是将模块安装到项目目录下,并在package文件的dependencies节点写入依赖。
    
    npm install -save-dev moduleName # -save-dev 的意思是将模块安装到项目目录下,并在package文件的devDependencies节点写入依赖。

    那么问题来了,在项目中我们应该使用四个命令中的哪个呢?这个就要视情况而定了。下面对这四个命令进行对比,看完后你就不再这么问了。

    npm install moduleName 命令

    1. 安装模块到项目node_modules目录下。
    2. 不会将模块依赖写入devDependencies或dependencies 节点。
    3. 运行 npm install 初始化项目时不会下载模块。

    npm install -g moduleName 命令

    1. 安装模块到全局,不会在项目node_modules目录中保存模块包。
    2. 不会将模块依赖写入devDependencies或dependencies 节点。
    3. 运行 npm install 初始化项目时不会下载模块。

    npm install -save moduleName 命令

    1. 安装模块到项目node_modules目录下。
    2. 会将模块依赖写入dependencies 节点。
    3. 运行 npm install 初始化项目时,会将模块下载到项目目录下。
    4. 运行npm install --production或者注明NODE_ENV变量值为production时,自动下载模块到node_modules目录中。

    npm install -save-dev moduleName 命令

    1. 安装模块到项目node_modules目录下。
    2. 会将模块依赖写入devDependencies 节点。
    3. 运行 npm install 初始化项目时,会将模块下载到项目目录下。
    4. 运行npm install --production或者注明NODE_ENV变量值为production时,不会自动下载模块到node_modules目录中。

    总结

    devDependencies 节点下的模块是我们在开发时需要用的,比如项目中使用的 gulp ,压缩css、js的模块。这些模块在我们的项目部署后是不需要的,所以我们可以使用 -save-dev 的形式安装。像 express 这些模块是项目运行必备的,应该安装在 dependencies 节点下,所以我们应该使用 -save 的形式安装。

  • 相关阅读:
    【LeetCode OJ】Remove Element
    【LeetCode OJ】Remove Duplicates from Sorted Array
    【LeetCode OJ】Swap Nodes in Pairs
    【LeetCode OJ】Merge Two Sorted Lists
    【LeetCode OJ】Remove Nth Node From End of List
    【LeetCode OJ】Two Sum
    【LeetCode OJ】Majority Element
    最长公共子序列问题
    php fopen与file_get_contents的区别
    PHP 技巧集合
  • 原文地址:https://www.cnblogs.com/limitcode/p/7906447.html
Copyright © 2020-2023  润新知