当前位置: 首页 > 知识库问答 >
问题:

如何使Grunt部署使用全局NPM模块而不是本地模块

步致远
2023-03-14

首先,我对npm和Grunt很陌生。我们有一个项目,我们正在使用Grunt编译并生成其输出文件。我正在尝试设置我们的构建服务器,以使用Grunt生成输出文件。我们使用的是带有TFS源代码管理的Windows,由于其260个字符的路径限制,我们无法将grunt-bower-task模块检查到源代码管理中(因为它在安装的路径中仅使用了230个字符)。

  • 咕噜声
  • grunt-bower-task
  • Grunt-contrib-Compass
  • Grunt-contrib-connect
  • grunt-contrib-jshint
  • grunt-contrib-requirejs
  • grunt-contrib-watch

然后,当我从我的项目目录运行grunt deploy时,一切都按预期工作。

虽然我可以简单地将运行npm install作为构建过程的一部分,但我不希望这样做,因为下载所有文件需要几分钟时间,而且我不希望我们的构建依赖于可用的外部web服务。

如果只包含*node_modules\grunt*目录,那么仍然会出现以下错误:

找不到本地Npm模块“grunt-contrib-watch”。安装好了吗?

找不到本地Npm模块“grunt-contrib-jshint”。安装好了吗?

作为参考,下面是我的package.json文件的样子:

{
  "name": "MyProject",
  "version": "0.0.1",
  "scripts": {
    "preinstall": "npm i -g grunt-cli bower"
  },
  "devDependencies": {
    "grunt": "~0.4.1",
    "grunt-contrib-compass": "~0.2.0",
    "grunt-contrib-watch": "~0.4.4",
    "grunt-contrib-jshint": "~0.6.0",
    "grunt-contrib-requirejs": "~0.4.1",
    "grunt-contrib-connect": "~0.3.0",
    "grunt-bower-task": "~0.2.3"
  }
}

多谢了。

共有1个答案

邵绪
2023-03-14

您应该在模块上使用符号链接,而不是使用npm的全局选项,以获得类似的结果。

全局npm安装只是为了方便命令行实用程序,如jshintgrunt-cli

 类似资料:
  • 问题内容: 我最近在OSX上安装了Node.js和npm模块,我认为设置有问题: 问题答案: 如果要全局安装npm模块,请确保使用new 标志,例如: 从1.0rc开始有关npm模块安装的一般建议(摘自blog.nodejs.org): 如果要安装要在程序中使用的东西,请使用require(’whatever’),然后 将其本地安装 在项目的根目录下。 如果要在外壳程序中安装要使用的东西,在命令行

  • 我是Grunt的新手,在设置新插件的项目时遇到了麻烦。 到目前为止我有: 全局安装grunt cli 这一切都很好,但是我想使用一个不同的uglify插件,所以,仍然在测试目录,我运行: 由于我没有使用全局标志,插件按预期下载到test/node_modules目录,位于test/node_modules/uglify js。包裹。json文件已更新为附加依赖项: 然后我编辑Gruntfile.j

  • 问题内容: 我有一个下载的模块库,我想在本地安装它,而不是在另一个目录中全局安装? 有什么简单的方法可以做到这一点? 问题答案: 您只需为提供一个参数,则该参数应指向本地文件夹而不是包名称:

  • 问题内容: 我写了一个模块,我刚才将其发布到npm(https://npmjs.org/package/wisp) 因此,可以从命令行进行安装: 但是,当我从命令行运行它时,我不断收到未安装乐观主义者的错误消息: 但是,我在package.json中指定了依赖性: 有谁知道该怎么做才能使它运行?我知道它与bin部分有关,将可执行文件添加到bin中,该目录中的node_modules为空。不知道如何

  • 我写了一个模块,不久前发布到npm(https://npmjs.org/package/wisp) 所以它可以从命令行安装: 但是,当我从命令行运行它时,我不断收到一个错误,即未安装optimist: 但是,我在package.json中指定了依赖项: 有人知道该怎么做才能让它运行吗?我知道这与bin部分将可执行文件添加到bin以及该目录中的node_模块为空有关。不知道如何解决这个问题。

  • 对于那些比较复杂的样式/颜色转换, 使用不同的npm模块有时会是比自己造轮子更好的选择. Example 对于在CSS中的暗色梯度, 我们可以使用chroma-js这个模块 import chroma from 'chroma-js' const alpha = (color) => (a) => chroma(color).alpha(a).css(); const darken = alpha