精华内容
下载资源
问答
  • npm 安装缺少的模块 nimm 为节点进程提供了一个包装器,它将检测您何时尝试要求未安装模块,并提示您安装它。 安装 npm install -g nimm 用法 nimm my-app.js 然后,当检测到缺少模块时,会出现一个提示,询问您...
  • submodules-install-NPM模块安装程序 该模块提供了一个用于在位置列表中调用npm i的系统,最终提供了自动子模块的安装。 在提供的子模块glob中,它将仅匹配包含“ package.json”的目录。 用法 通过npm安装: ...
  • npm 模块安装机制简介

    2017-02-18 15:34:10
    原文链接npm 模块安装机制简介 本文介绍 npm 模块安装机制的细节,以及如何解决安装速度慢的问题。一、从 npm install 说起npm install 命令用来安装模块到node_modules目录。$ npm install 安装之前,npm install...

    原文链接npm 模块安装机制简介
    本文介绍 npm 模块安装机制的细节,以及如何解决安装速度慢的问题。


    一、从 npm install 说起

    npm install 命令用来安装模块到node_modules目录。

    $ npm install <packageName>

    安装之前,npm install会先检查,node_modules目录之中是否已经存在指定模块。如果存在,就不再重新安装了,即使远程仓库已经有了一个新版本,也是如此。

    如果你希望,一个模块不管是否安装过,npm 都要强制重新安装,可以使用-f--force参数。

    $ npm install <packageName> --force

    二、npm update

    如果想更新已安装模块,就要用到npm update命令。

    $ npm update <packageName>

    它会先到远程仓库查询最新版本,然后查询本地版本。如果本地版本不存在,或者远程版本较新,就会安装。

    三、registry

    npm update命令怎么知道每个模块的最新版本呢?
    答案是npm模块仓库提供了一个查询服务,叫做registry以npmjs.org为例,它的查询服务网址是 https://registry.npmjs.org/
    这个网址后面跟上模块名,就会得到一个 JSON 对象,里面是该模块所有版本的信息。比如,访问 https://registry.npmjs.org/react,就会看到 react 模块所有版本的信息。
    它跟下面命令的效果是一样的。

    $ npm view react
    
    # npm view 的别名
    $ npm info react
    $ npm show react
    $ npm v react

    registry 网址的模块名后面,还可以跟上版本号或者标签,用来查询某个具体版本的信息。比如, 访问 https://registry.npmjs.org/react/v0.14.6,就可以看到 React 的 0.14.6 版。

    返回的 JSON 对象里面,有一个dist.tarball属性,是该版本压缩包的网址。

    dist: {
      shasum: '2a57c2cf8747b483759ad8de0fa47fb0c5cf5c6a',
      tarball: 'http://registry.npmjs.org/react/-/react-0.14.6.tgz' 
    },

    到这个网址下载压缩包,在本地解压,就得到了模块的源码。npm install和npm update命令,都是通过这种方式安装模块的。

    四、缓存目录

    npm installnpm update命令,从 registry 下载压缩包之后,都存放在本地的缓存目录。

    这个缓存目录,在 Linux 或 Mac 默认是用户主目录下的.npm目录,在 Windows 默是%AppData%/npm-cache。通过配置命令,可以查看这个目录的具体位置。

    $ npm config get cache
    $HOME/.npm

    你最好浏览一下这个目录。

    $ ls ~/.npm 
    # 或者
    $ npm cache ls

    你会看到里面存放着大量的模块,储存结构是{cache}/{name}/{version}

    $ npm cache ls react
    ~/.npm/react/react/0.14.6/
    ~/.npm/react/react/0.14.6/package.tgz
    ~/.npm/react/react/0.14.6/package/
    ~/.npm/react/react/0.14.6/package/package.json

    每个模块的每个版本,都有一个自己的子目录,里面是代码的压缩包package.tgz文件,以及一个描述文件package/package.json。
    除此之外,还会生成一个{cache}/{hostname}/{path}/.cache.json文件。比如,从 npm 官方仓库下载 react 模块的时候,就会生成registry.npmjs.org/react/.cache.json文件。
    这个文件保存的是,所有版本的信息,以及该模块最近修改的时间和最新一次请求时服务器返回的 ETag 。

    {
      "time":{
        "modified":"2016-01-06T23:52:45.571Z",
        // ...
      },
      "_etag":"\"7S37I0775YLURCFIO8N85FO0F\""
    }

    对于一些不是很关键的操作(比如npm search或npm view),npm会先查看.cache.json里面的模块最近更新时间,跟当前时间的差距,是不是在可接受的范围之内。如果是的,就不再向远程仓库发出请求,而是直接返回.cache.json的数据。
    .npm目录保存着大量文件,清空它的命令如下。

    $ rm -rf ~/.npm/*
    # 或者
    $ npm cache clean

    五、模块的安装过程

    总结一下,Node模块的安装过程是这样的。

    发出npm install命令
    npm 向 registry 查询模块压缩包的网址
    下载压缩包,存放在~/.npm目录
    解压压缩包到当前项目的node_modules目录

    注意,一个模块安装以后,本地其实保存了两份。一份是~/.npm目录下的压缩包,另一份是node_modules目录下解压后的代码。但是,运行npm install的时候,只会检查node_modules目录,而不会检查~/.npm目录。也就是说,如果一个模块在~/.npm下有压缩包,但是没有安装在node_modules目录中,npm依然会从远程仓库下载一次新的压缩包。

    这种行为固然可以保证总是取得最新的代码,但有时并不是我们想要的。最大的问题是,它会极大地影响安装速度。即使某个模块的压缩包就在缓存目录中,也要去远程仓库下载,这怎么可能不慢呢?
    另外,有些场合没有网络(比如飞机上),但是你想安装的模块,明明就在缓存目录之中,这时也无法安装。

    六、–cache-min 参数

    为了解决这些问题,npm 提供了一个--cache-min参数,用于从缓存目录安装模块。
    –cache-min参数指定一个时间(单位为分钟),只有超过这个时间的模块,才会从 registry 下载。

    $ npm install --cache-min 9999999 <package-name>

    上面命令指定,只有超过999999分钟的模块,才从 registry 下载。实际上就是指定,所有模块都从缓存安装,这样就大大加快了下载速度。
    它还有另一种写法。

    $ npm install --cache-min Infinity <package-name>

    但是,这并不等于离线模式,这时仍然需要网络连接。因为现在的–cache-min实现有一些问题。

    (1)如果指定模块不在缓存目录,那么 npm 会连接 registry,下载最新版本。这没有问题,但是如果指定模块在缓存目录之中,npm 也会连接 registry,发出指定模块的 etag ,服务器返回状态码304,表示不需要重新下载压缩包。
    (2)如果某个模块已经在缓存之中,但是版本低于要求,npm会直接报错,而不是去 registry 下载最新版本。
    npm 团队知道存在这些问题,正在重写 cache。并且,将来会提供一个–offline参数,使得 npm 可以在离线情况下使用。

    不过,这些改进没有日程表。所以,当前使用–cache-min改进安装速度,是有问题的。

    展开全文
  • 发现安装不了node_modules包,解决办法如下: 缺少package.json,无法安装. 分为以下两步: 1.npm init -y 2.npm i -D vue 或 yarn add vue

    发现安装不了node_modules包,解决办法如下:

    缺少package.json,无法安装.

    分为以下两步:

    1.npm init -y

    2.npm i -D vue 或 yarn add vue

    展开全文
  • att-geojson-npm npm 模块测试
  • 一个CLI工具,用于安装与您始终安装npm模块相同的模块 您是否每次都始终在项目上安装相同的npm模块? ninstall可以帮助您。 您可以保存多个配置,以保存不同类型的项目。 因此,如果保存了配置,则可以在新项目中...
  • 不幸的是,NPM 并不总是在每个系统上成功安装模块,这意味着有时需要专门为您的系统从源代码编译模块。 但是,执行npm install或npm update在尝试安装或更新该特定模块时仍会返回一连串错误。 这个命令行工具允许...
  • node js中npm安装模块在哪个目录下

    分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

                   

    初学node.js,node安装在F盘,然后

    npm install xss
    xss@0.0.6 node_modules\xss

    但是在f:\node\node_modules目录没有看到xss模块,请问安装的源码在哪呢?
    ps:有点js基础,如何快速掌握node,新人致谢


    npm安装模块默认为 shell 的当前目录。如果要装成全局的,使用 npm install xss -g

    npm help install里的描述是:

    Packages are dropped into the node_modules folder under the prefix. Global installs on Unix systems go to {prefix}/lib/node_modules. Global installs on Windows go to {prefix}/node_modules (that is,no lib folder.)

    翻译出来大意是:

    Packages 安装进 prefix 前缀的 node_modules。Unix系统里 Global 安装会装进{prefix}/lib/node_modules。Windows系统里则是 {prefix}/node_modules (就是说没有 lib 文件夹)。

    通过 npm config ls 可列出 prefix 的配置

    修改 prefix 可以 npm config set prefix "f:\node"

    以上知识我都是 npm help + Google 得出来的,其实我学 node 也没多久。好的学习方法可以自己快速得到答案。



               

    分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

    展开全文
  • 这个 npm 模块告诉你当前机器上安装了哪些程序或 npm 模块npm 模块使用了 npm 模块 ,它很酷! 安装 安装为本地模块 npm i say-me npm i --save say-me npm i -D say-me 安装为全局模块 npm i -g say-me 在 ...
  • 需要全局npm作为本地节点模块。 现在,Npm的大小约为25MB,这对大多数模块来说是一个很大的依赖。 幸运的是,几乎每个node.js用户都在全局安装了一个npm。 但是,通常,您不能直接需要全局模块,除非: 为安装了...
  • 一个,允许您使用npm模块名称导入SASS。 这使您可以将SASS文件保留在前端npm模块中。 如果您使用的是browserify,则可能需要这样做! 贡献 我刚写这是因为我需要它。 拉取请求很高兴被接受! 安装 npm install ...
  • npm 是 Node 的模块管理器,功能极其强大。它是 Node 获得成功的重要原因之一。...本文介绍 npm 模块安装机制的细节,以及如何解决安装速度慢的问题。 一、从 npm install 说起 npm install 命令用

    原文地址:点击打开链接

    npm 是 Node 的模块管理器,功能极其强大。它是 Node 获得成功的重要原因之一。

    正因为有了npm,我们只要一行命令,就能安装别人写好的模块 。

    
    $ npm install 
    

    本文介绍 npm 模块安装机制的细节,以及如何解决安装速度慢的问题。

    一、从 npm install 说起

    npm install 命令用来安装模块到node_modules目录。

    
    $ npm install <packageName>
    

    安装之前,npm install会先检查,node_modules目录之中是否已经存在指定模块。如果存在,就不再重新安装了,即使远程仓库已经有了一个新版本,也是如此。

    如果你希望,一个模块不管是否安装过,npm 都要强制重新安装,可以使用-f--force参数。

    
    $ npm install <packageName> --force
    

    二、npm update

    如果想更新已安装模块,就要用到npm update命令。

    
    $ npm update <packageName>
    

    它会先到远程仓库查询最新版本,然后查询本地版本。如果本地版本不存在,或者远程版本较新,就会安装。

    三、registry

    npm update命令怎么知道每个模块的最新版本呢?

    答案是 npm 模块仓库提供了一个查询服务,叫做 registry 。以 npmjs.org 为例,它的查询服务网址是 https://registry.npmjs.org/ 。

    这个网址后面跟上模块名,就会得到一个 JSON 对象,里面是该模块所有版本的信息。比如,访问 https://registry.npmjs.org/react,就会看到 react 模块所有版本的信息。

    它跟下面命令的效果是一样的。

    
    $ npm view react
    
    # npm view 的别名
    $ npm info react
    $ npm show react
    $ npm v react
    

    registry 网址的模块名后面,还可以跟上版本号或者标签,用来查询某个具体版本的信息。比如, 访问 https://registry.npmjs.org/react/v0.14.6 ,就可以看到 React 的 0.14.6 版。

    返回的 JSON 对象里面,有一个dist.tarball属性,是该版本压缩包的网址。

    
    dist: {
      shasum: '2a57c2cf8747b483759ad8de0fa47fb0c5cf5c6a',
      tarball: 'http://registry.npmjs.org/react/-/react-0.14.6.tgz' 
    },
    

    到这个网址下载压缩包,在本地解压,就得到了模块的源码。npm installnpm update命令,都是通过这种方式安装模块的。

    四、缓存目录

    npm installnpm update命令,从 registry 下载压缩包之后,都存放在本地的缓存目录。

    这个缓存目录,在 Linux 或 Mac 默认是用户主目录下的.npm目录,在 Windows 默认是%AppData%/npm-cache。通过配置命令,可以查看这个目录的具体位置。

    
    $ npm config get cache
    $HOME/.npm
    

    你最好浏览一下这个目录。

    
    $ ls ~/.npm 
    # 或者
    $ npm cache ls
    

    你会看到里面存放着大量的模块,储存结构是{cache}/{name}/{version}

    
    $ npm cache ls react
    ~/.npm/react/react/0.14.6/
    ~/.npm/react/react/0.14.6/package.tgz
    ~/.npm/react/react/0.14.6/package/
    ~/.npm/react/react/0.14.6/package/package.json
    

    每个模块的每个版本,都有一个自己的子目录,里面是代码的压缩包package.tgz文件,以及一个描述文件package/package.json

    除此之外,还会生成一个{cache}/{hostname}/{path}/.cache.json文件。比如,从 npm 官方仓库下载 react 模块的时候,就会生成registry.npmjs.org/react/.cache.json文件。

    这个文件保存的是,所有版本的信息,以及该模块最近修改的时间和最新一次请求时服务器返回的 ETag 。

    
    {
      "time":{
        "modified":"2016-01-06T23:52:45.571Z",
        // ...
      },
      "_etag":"\"7S37I0775YLURCFIO8N85FO0F\""
    }
    

    对于一些不是很关键的操作(比如npm searchnpm view),npm会先查看.cache.json里面的模块最近更新时间,跟当前时间的差距,是不是在可接受的范围之内。如果是的,就不再向远程仓库发出请求,而是直接返回.cache.json的数据。

    .npm目录保存着大量文件,清空它的命令如下。

    
    $ rm -rf ~/.npm/*
    # 或者
    $ npm cache clean
    

    五、模块的安装过程

    总结一下,Node模块的安装过程是这样的。

    1. 发出npm install命令
    2. npm 向 registry 查询模块压缩包的网址
    3. 下载压缩包,存放在~/.npm目录
    4. 解压压缩包到当前项目的node_modules目录

    注意,一个模块安装以后,本地其实保存了两份。一份是~/.npm目录下的压缩包,另一份是node_modules目录下解压后的代码。

    但是,运行npm install的时候,只会检查node_modules目录,而不会检查~/.npm目录。也就是说,如果一个模块在~/.npm下有压缩包,但是没有安装在node_modules目录中,npm 依然会从远程仓库下载一次新的压缩包。

    这种行为固然可以保证总是取得最新的代码,但有时并不是我们想要的。最大的问题是,它会极大地影响安装速度。即使某个模块的压缩包就在缓存目录中,也要去远程仓库下载,这怎么可能不慢呢?

    另外,有些场合没有网络(比如飞机上),但是你想安装的模块,明明就在缓存目录之中,这时也无法安装。

    六、--cache-min 参数

    为了解决这些问题,npm 提供了一个--cache-min参数,用于从缓存目录安装模块。

    --cache-min参数指定一个时间(单位为分钟),只有超过这个时间的模块,才会从 registry 下载。

    
    $ npm install --cache-min 9999999 <package-name>
    

    上面命令指定,只有超过999999分钟的模块,才从 registry 下载。实际上就是指定,所有模块都从缓存安装,这样就大大加快了下载速度。

    它还有另一种写法。

    
    $ npm install --cache-min Infinity <package-name>
    

    但是,这并不等于离线模式,这时仍然需要网络连接。因为现在的--cache-min实现有一些问题。

    (1)如果指定模块不在缓存目录,那么 npm 会连接 registry,下载最新版本。这没有问题,但是如果指定模块在缓存目录之中,npm 也会连接 registry,发出指定模块的 etag ,服务器返回状态码304,表示不需要重新下载压缩包。

    (2)如果某个模块已经在缓存之中,但是版本低于要求,npm会直接报错,而不是去 registry 下载最新版本。

    npm 团队知道存在这些问题,正在重写 cache。并且,将来会提供一个--offline参数,使得 npm 可以在离线情况下使用。

    不过,这些改进没有日程表。所以,当前使用--cache-min改进安装速度,是有问题的。

    七、离线安装的解决方案

    社区已经为npm的离线使用,提出了几种解决方案。它们可以大大加快模块安装的速度。

    解决方案大致分成三类。

    第一类,Registry 代理。

    上面三个模块的用法很类似,都是在本机起一个 Registry 服务,所有npm install命令都要通过这个服务代理。

    
    # npm-proxy-cache
    $ npm --proxy http://localhost:8080 \
      --https-proxy http://localhost:8080 \
      --strict-ssl false \
      install
    
    # local-npm
    $ npm set registry http://127.0.0.1:5080
    
    # npm-lazy
    $ npm --registry http://localhost:8080/ install socket.io
    

    有了本机的Registry服务,就能完全实现缓存安装,可以实现离线使用。

    第二类,npm install替代。

    如果能够改变npm install的行为,就能实现缓存安装。npm-cache 工具就是这个思路。凡是使用npm install的地方,都可以使用npm-cache替代。

    
    $ npm-cache install
    

    第三类,node_modules作为缓存目录。

    这个方案的思路是,不使用.npm缓存,而是使用项目的node_modules目录作为缓存。

    上面两个工具,都能将项目的node_modules目录打成一个压缩包,以后安装的时候,就从这个压缩包之中取出文件。

    展开全文
  • 允许模块npm安装--save或--save-dev的模块 安装 > npm install --save npm-save 用法 有两个选项:--save或--save-dev。 无论哪种方式,要依赖此模块,都需要通过 var npm = require("npm-save"); 保存 要保存模块...
  • 原文链接:http://www.ruanyifeng.com/blog/2016/01/npm-install.html npm 是 Node 的模块管理器,功能极其强大。它是 Node 获得成功的重要...本文介绍 npm 模块安装机制的细节,以及如何解决安装速度慢的问题。 ...
  • 所以呢,我们就要寻找一种可以让npm安装私有模块的办法,这里所谓的私有模块,就是模块内容(代码)不能被公开访问(下载)到。那么怎么办呢? 解决方案一:购买npm付费账号 这是最简单的办法,根据 npm的价格...
  • 概述 在Docker容器中执行npm i module_name并返回文件系统更改 用法示例 var Docker = require('dockerode'); var docker = new Docker({socketPath: '/var/run... image-您要对其运行npm i模块的图像的名称 module_na
  • 文章目录简介一、yum 仓库安装(不推荐)二、源码安装三、其他相关的问题 简介 nodejs 被广泛使用,即使是不从事 nodejs 开发工作也经常要接触到,安装方法和其他软件安装方法一样,仓库安装源码安装,以下操作皆...
  • 模块的 Grunt 包装器。 此任务创建一个 npm-shrinkwrap.json 文件(带有可选的开发依赖项)。 安装: % npm i pdehaan/grunt-npmshrinkwrap -D 用法: 从终端调用以下任一命令: grunt npmShrinkwrap — 只收缩...
  • 测试NPM模块,而无需手动安装 什么 NPMaybe负责测试模块的临时性-只需使用未修改的require语句将要运行的文件提供给它,NPMaybe就会以适当的依赖项运行它。 用法 首先,在全局安装NPMaybe: $ npm install -g ...
  • node.js中npm安装模块在哪个目录下

    万次阅读 2015-09-01 17:45:28
    但是在f:\node\node_modules目录没有看到xss模块,请问安装源码在哪呢? ps:有点js基础,如何快速掌握node,新人致谢 npm安装模块默认为 shell 的当前目录。如果要装成全局的,使用 npm
  • 今天的账单 npm插件,用于访问bill.today API。 如何安装 npm install billtoday
  • npm 模块名称获取 GitHub URL。 var githubUrlFromNpm = require ( 'github-url-from-npm' ) ; githubUrlFromNpm ( 'mocha' , function ( err , url ) { assert ( url === '...
  • ES模块是JavaScript的未来,但与其他许多es @ next功能不同,开发人员竞相利用这些功能的主要原因是类的构建工具,因此与ES模块以及现有NPM模块一起使用很难上手。 本教程的目的是提供一套完整的示例,说明您可以...
  • npm-eighty:npm 模块-源码

    2021-07-01 12:38:54
    安装 $ npm install eighty 用法 你可能还不应该。 天啊。 var eighty = require('eighty'); eighty.configure({ width: 40 }); eighty.wordWrap('ah, distinctly I remember it was in the bleak December and ...
  • 安装了ghost作为npm模块,因此只需发出bin/stop; bin/npm update; bin/start即可更新它bin/stop; bin/npm update; bin/start bin/stop; bin/npm update; bin/start bin/stop; bin/npm update; bin/start 。 内容...
  • 在项目上第二次运行npm install时,npm将检查模块的第一级以确保已安装它们,但不会遍历依赖性树以确保已安装所有子模块依赖性。 您可以运行npm outdated来检查是否缺少模块,但是npm不会为您安装它们。 该模块...
  • npm安装mydigitalstructure 示例应用; 版本2.0.0 初始化; var mydigitalstructure = require('mydigitalstructure'); 控制器方法: mydigitalstructure.add({name :, note :, code:}); ...
  • 一个空白的npm全局模块,用于创建npm模块 ##设置1。 npm install 使用以下选项运行grunt init任务: 选项 描述 --name= 这是模块的名称 --repo= 这是git存储库(可选) --author= 这是作者的名字(可选) #...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 51,569
精华内容 20,627
关键字:

npm源码安装模块