zoukankan      html  css  js  c++  java
  • npm install

    在桌面w+cmd打开命令行工具是全局,在文件shift+右键点击打开powershell是在该文件夹打开命令行工具。

    npm install 支持直接输入 Github 代码库地址

    如:$ npm install git://github.com/package/path.git
      $ npm install git://github.com/package/path.git#0.1.0

    安装之前,npm install 会先检查,node_modules 目录之中是否已经存在指定模块。如果存在,就不再重新安装了,即使远程仓库已经有了一个新版本,也是如此。如果你希望,一个模块不管是否安装过, npm 都要强制重新安装,可以使用 -f--force 参数

    $ npm install <packageName> --force

    npm install 的时候会安装哪个里面的依赖?dependencies 还是 devDependencies

    【npm install 默认会安装 dependencies 字段和 devDependencies 字段中的所有模块】。 如果软件包具有 package-lock 或 shrinkwrap 文件,则依赖项的安装将由此驱动,如果两个文件都存在,则 npm-shrinkwrap.json 优先。
    请参阅 package-lock.json 和 npm-shrinkwrap。
    那么也就是说,当我们在拿到一个项目的时候,使用 npm install 是会安装 dependencies 和 devDependencies 里所有的依赖包的。
    如果使用 --production 参数,可以只安装 dependencies 字段的模块。
    $ npm install --production
    # 或者
    $ NODE_ENV=production npm install

    dependencies 依赖

    这个可以说是我们 npm 核心一项内容,依赖管理,这个对象里面的内容就是我们这个项目所依赖的 js 模块包。

    下面这段代码表示我们依赖了 markdown-it 这个包,版本是 ^8.1.0 ,代表最小依赖版本是 8.1.0 ,如果这个包有更新,那么当我们使用 npm install 命令的时候,npm 会帮我们下载最新的包。当别人引用我们这个包的时候,包内的依赖包也会被下载下来。

    "dependencies": {
        "markdown-it": "^8.1.0"
    }

    devDependencies 开发依赖

    在我们开发的时候会用到的一些包,只是在开发环境中需要用到,但是在别人引用我们包的时候,不会用到这些内容,放在 devDependencies 的包,在别人引用的时候不会被 npm 下载

    "devDependencies": {
        "autoprefixer": "^6.4.0",0",
        "babel-preset-es2015": "^6.0.0",
        "babel-preset-stage-2": "^6.0.0",
        "babel-register": "^6.0.0",
        "webpack": "^1.13.2",
        "webpack-dev-middleware": "^1.8.3",
        "webpack-hot-middleware": "^2.12.2",
        "webpack-merge": "^0.14.1",
        "highlightjs": "^9.8.0"
    }


    结论当你在开发一个 npm 包的时候,还是要好好管理你的 dependencies 依赖 和 devDependencies 依赖。

    之前有个同事写了一个 loading 组件,发到 npm 上面去了,他跟我说简单好用,我就用了。

    但是我发现他这么小的一个组件,为什么包这么大。一看,原来他写这个 npm 包的时候,所有的依赖都放到 dependencies 里面了(包括 gulp,browser-asyc,压缩代码的,express…等等一些他开发时用的工具)。

     
     


  • 相关阅读:
    《动手能力强与技术水平低》(2009/12/14)
    《为什么程序员被喻为“IT农民工”》(2009/12/12)
    对于关键字Ref和Out的理解
    2008世界500强排名(1100位)
    Javascript取select的选中值和文本
    使用 FreeNAS 下載 eMule
    程序员35岁后的三条出路
    二维条码 QR Code
    笔记本CPU性能排行榜Comparison of Mobile Processors (CPU Benchmarks)
    如何在C#中播放AVI短片并使背景透明
  • 原文地址:https://www.cnblogs.com/hujun-2018/p/11576711.html
Copyright © 2011-2022 走看看