我是Node.js的新手,试图使用grunt-contrib-concat
从多个源文件构建我的javascript库。
我已经创建了一个虚拟环境,激活了它,全局安装了grunt
和grunt-cli
,为我的项目编写了Gruntfile.js
和package.json
文件。
$ nodenv NODEENV
$ source NODENV/bin/activate
(NODEENV)$ npm install -g grunt-cli
...
(NODEENV)$ npm install -g grunt
...
(NODEENV)$ cd myproject
(NODEENV)$ ls myproject
Gruntfile.js package.json src test README.md
(NODEENV)$ grunt test
grunt-cli: The grunt command line interface. (v0.1.13)
Fatal error: Unable to find local grunt.
If you're seeing this message, either a Gruntfile wasn't found or grunt
hasn't been installed locally to your project. For more information about
installing and configuring grunt, please see the Getting Started guide:
http://gruntjs.com/getting-started
我不明白的是,如果我已经有了一个全局安装的grunt
,为什么grunt-cli
告诉我它想要一个本地的每个项目的grunt
版本?
你还能建议一种纠正错误的方法吗?
4条答案
按热度按时间nhaq1z211#
这是由于npm's foldering:
Gruntfile本身取决于
require('grunt')
是否可用,需要本地安装。而且,将
grunt(1)
作为可用命令使得使用该工具更加容易,需要全局安装。不过,要同时拥有这两个文件夹,必须将其安装在这两个文件夹中。
9w11ddsr2#
从项目目录运行
npm install
。对于每个项目,Grunt需要驻留在项目的npm_modules
目录中,以便项目声明它使用的是正确的grunt版本(可能与全局版本不同)。bybem2ql3#
这就是它的工作方式。你总是需要:
agxfikkp4#
如果这些命令在使用/不使用sudo时不起作用。
或者你会得到这样的错误
第一节第一节第一节第一节第一次
然后按照以下步骤操作。
1.运行
npm config list
,然后检查注册表项值。它可能类似于:registry = "https://npm.some.domain.other.than.global.com/"
1.如果您在步骤1中找到了您案例,则运行命令
npm config set registry https://registry.npmjs.com/
成交!
现在,如果
package.json
包含grunt
库名,则可以运行npm install
。否则
现在可以了。