• npm 常用命令


      npm init: 使用交互方式生成项目的package.json文件。如果项目要用git进行版本管理,最好是创建git仓库后,再执行npm init ,因为npm init 能自动识别这是一个git管理的项目。如果还设置了远程仓库,比如githup,并和远程仓库建立了联系,npm init 会再自动填充package.json中的repository , bugs , 和 homepage字段,非常方便。如果执行完npm init,再初始化项目为git项目,这些字段就要手动添加,比较麻烦。如果觉得交互方式创建package.json文件也比较麻烦,就想使用默认值,可以npm init -y,  一次生成package.json文件

      npm install: 安装包或项目依赖,通常是从npm 仓库安装依赖到项目的node_modules下面,平时也是这么用的。不过,它还可以安装本地依赖。比如本地有一个文件夹sum,它里面有一个package.json.

    {
      "name": "sum",
      "version": "1.0.0",
      "main": "index.js"
    }

      和index.js文件

    module.exports = function sum(a, b) {
        return a + b;
    }

      实际上sum文件夹已经变成一个pacckage包了。和sum文件夹同级,mkdir app  && cd app && npm init -y 新建一个app项目,此时引入sum包(依赖),由于是本地依赖,安装的时候要用路径 npm i ../sum ,  安装成功,可以看到app项目的package.json中的dependencies 中有了sum

      "dependencies": {
        "sum": "file:../sum"
      }

      再看node_modules下面,也有了sum依赖,sum文件夹(模块)就会复制到 app 的node_modules中。

       在app项目下,新建index.js, 引入sum,看能不能成功运行

    const sum = require('sum');
    console.log(sum(1,2));

      node index.js,可以看到输出3,没有问题。

      npm update: 更新项目依赖。如果后面没有参数,直接npm update, 就更新项目中的所有依赖,如果有参数,就是要更新的包名,比如 npm update eslint,  就只更新这一个依赖eslint 。还是拿上面的本地模块sum 来说,稍微给sum加点验证,表示包的更新

    module.exports = function sum(a, b) {
        if (a < 0 || b > 100) {
            throw new Error('大了')
        } 
        return a + b;
    }

      在app项目中,npm update 或npm update sum, 检查一下node_modules,确认sum依赖更新了。当确,如果在更新之前,知道哪些依赖过期了就更好了,npm outdated, 检查项目中的依赖有没有过期。

      上面使用npm install 安装本地模块有一个问题,那就是如果本地模块正在开发中,它的更新会非常频繁,我们不得不在app项目中不停的npm update, 此时可以使用npm link.

      在npm link 之前,把npm install 的sum依赖卸载,使用的命令是npm uninstall 包名。npm uninstall sum 就可以把sum依赖删除了,可以看到package.json中的dependencies变成了空对象, node_modules下面也没有sum包。

      npm link 模块使用的技术是软链接或快捷方式,使用软链接或快捷方式链接到本地模块。链接一个模块有两步

        1,创建一个全局链接到本地模块。npm 会在全局node_modules文件夹下创建一个链接或快捷方式到本地模块文件夹。在sum文件夹下 npm link, windows 下 C:\Users\Admin\AppData\Roaming\npm\node_modules\sum -> D:\sum,在Linux下  /usr/local/lib/node_modules/sum -> /home/sam/sum,就是在全局node_modules下,创建一个软链接或快捷方式sum,指向本地模块, 也相当于在全局node_modules下安装了sum。

        2,创建一个本地链接。npm 会在使用本地模块的本地项目中,创建一个软链接或快捷方式到全局node_modules中的模块链接。在app项目中,npm link sum,  在windows下面D:\app\node_modules\sum -> C:\Users\Admin\AppData\Roaming\npm\node_modules\sum -> D:\sum, 在linux 下面, /home/sam/app/node_modules/sum -> /usr/local/lib/node_modules/sum -> /home/sam/sum。app中node_modules中的sum链接到全局,全局指向了真实的sum模块。由于都是链接,本地模块的更新能够及时反应到使用本地模块的项目中。

      链接完成,app 下node index.js 就可以启动项目,没有问题,看一下node_modules,它下面有也有了sum。这时修改本地模块sum,把if的校验删掉,此时,再看app下node_modules下面的sum, 它也实时更新了。

      npm unlink 则取消链接模块. 在 app项目下,npm unlink sum, 则取消链接sum模块,node_module变成了空目录。

      npm config: 设置或获取npm 的配置信息,用的最多的是配置源。npm config list 可以获取整个npm 配置信息。npm config get <key> 可以获取某个key的配置信息。比如npm config get registry, 获取npm 配置的源。npm config set <key> 则是设置某个key的值,比如npm config set registry="taobao.register.org". npm config delete <key> ,则是删除某条配置信息。

      npm list: 列出项目的依赖,npm list --depth=0 列出项目的第一层依赖. npm list 包名,可以列出某个包在哪个包下用到。

      npm run: 执行package.json中scripts 字段定义的命令。scripts命令中有pre 和post, pre<name>, 会在某个name命令之前,自动执行,post<name>则是在某个name命令执行之后执行。

      "scripts": {
        "prebuild": "rm -rf build",
        "build": "rollup --config",
        "postbuild": "echo build complete"
      },

      npm run build, 这三个命令就会按顺序执行。

      

  • 相关阅读:
    解决:ImportError: cannot import name 'login' from 'django.contrib.auth.views'
    报错:No module named 'django.contrib.staticfiles.templatetags'
    模块django.forms.forms的用法
    cannot import name 'python_2_unicode_compatible'
    解决ImproperlyConfigured: Error loading MySQLdb module: No module named 'MySQLdb'问题
    Django自学之 django基本命令,Django常用命令
    django使用cmd的基本命令-启动、新建
    解决 The repository located at pypi.doubanio.com is not a trusted or secure host and is being ignored.的问题
    解决ImportError: cannot import name 'six' from 'django.utils'
    设计模式--开篇
  • 原文地址:https://www.cnblogs.com/SamWeb/p/16446794.html
Copyright © 2020-2023  润新知