我正在重新设计我的构建系统,并且我已经阅读了带有 grunt 的 node.js 是一个很好的方法。我也从来没有用过,而且我遇到了一些麻烦。
问题是我想建立一个可移植的构建环境,我可以将它包含在我的项目的版本控制中(也许这是不可能的)。让 node.js 和 npm 工作没有问题。但是,我看到的每条安装 grunt 的指令都说要使用-g
带有 npm 的标志来全局安装它。因为我想要一个完全可移植的环境,所以我试图把它关掉,但我不能咕噜咕噜地工作。
我错过了什么,还是我试图做的事情不可行?
我正在重新设计我的构建系统,并且我已经阅读了带有 grunt 的 node.js 是一个很好的方法。我也从来没有用过,而且我遇到了一些麻烦。
问题是我想建立一个可移植的构建环境,我可以将它包含在我的项目的版本控制中(也许这是不可能的)。让 node.js 和 npm 工作没有问题。但是,我看到的每条安装 grunt 的指令都说要使用-g
带有 npm 的标志来全局安装它。因为我想要一个完全可移植的环境,所以我试图把它关掉,但我不能咕噜咕噜地工作。
我错过了什么,还是我试图做的事情不可行?
看看http://gruntjs.com/getting-started
Grunt 最近被拆分为一个项目本地依赖项(grunt
)和一个命令行启动器(grunt-cli
)。后者应该全局安装。
作为确保您可以在任何地方进行构建的额外提示:确保您将所有依赖项保存在package.json
, 使用时使用--save
and--save-dev
参数npm install
。更多信息:https ://npmjs.org/doc/install.html
您可以通过调用以下命令来使用本地 grunt,而无需全局 (-g) 安装 grunt-cli:
node node_modules/grunt-cli/bin/grunt --version
当然首先你需要将它安装在你本地的项目中并且有一个大于 0.3 的 grunt 版本;例如:
npm install grunt-cli
npm install grunt@0.4.5
或者将它们都添加到您的 packages.json 并调用
npm install
当您无法像我在https://stackoverflow.com/a/39046355/2201879中描述的那样全局安装任何软件包时,这也应该会有所帮助
请参阅https://www.npmjs.com/package/grunt-cli#installing-grunt-cli-locally:
在本地安装 grunt-cli
如果您更喜欢惯用的 Node.js 方法来开始项目 ( npm install && npm test
),请使用 npm install grunt-cli --save-dev 在本地安装 grunt-cli。然后将脚本添加到您的 package.json 以运行相关的 grunt 命令:"scripts": { "test": "grunt test" }
。现在 npm test 将使用本地安装的./node_modules/.bin/grunt
可执行文件来运行你的 Grunt 命令。
要了解有关 npm 脚本的更多信息,请访问 npm 文档:
https ://docs.npmjs.com/misc/scripts 。
以下是将最新版本的 Grunt 安装到您的项目文件夹中的命令行代码,并将其添加到您的 devDependencies:
npm install grunt --save-dev
对于 gruntplugins 和其他节点模块也可以这样做。如以下安装 JSHint 任务模块的示例所示:
npm install grunt-contrib-jshint --save-dev
在插件页面查看当前可用的 gruntplugins 以在您的项目中安装和使用。
完成后,请务必将更新后的 package.json 文件与您的项目一起提交!