Roy*_*ove 8 javascript gruntjs
在gruntjs的 "Hello World"项目上工作,似乎没有一个安装grunt任务的最佳位置.比方说,我想开始编译coffeescript,我需要安装'grunt-coffee'任务.
这似乎是grunt希望你这样做的方式,并且它有效.
cd $MY_PROJECT_HOME
npm install grunt-coffee
grunt coffee
Run Code Online (Sandbox Code Playgroud)
但是,这会为我的项目树添加7.2mg.我不想把它放在我的src控件中,但如果我删除它,grunt将不会构建我的项目.我可以.gitignore它,但是其他下载存储库的人如果不进行相同的安装就无法构建.这对CI服务器来说也有点混乱.
cd $MY_PROJECT_HOME
npm install -g grunt-coffee
grunt coffee
Run Code Online (Sandbox Code Playgroud)
如果我以这种方式安装它们,Grunt找不到我的插件:
Local Npm module "grunt-coffee" not found. Is it installed?
Run Code Online (Sandbox Code Playgroud)
我不清楚为什么不支持这个.
Grunt有一个名为loadTasks的api方法,它在本地加载任务.我试着拉下npms并将它们自己移动到我在这里引用的自定义目录中,没有运气.例如
grunt.loadTasks('$SHARED_TASKS_FOR_ALL_MY_GRUNT_PROJECTS/node_modules/grunt-coffee')
Run Code Online (Sandbox Code Playgroud)
然后:
cd $SHARED_TASKS_FOR_ALL_MY_GRUNT_PROJECTS
npm install grunt-coffee
cd $MY_PROJECT_HOME
grunt coffee
Task "coffee" not found. Use --force to continue.
Run Code Online (Sandbox Code Playgroud)
那太好了...... :)
下面的Sindre是正确的.选项1是可行的方法,但缺少一部分 - package.json文件.所以:
node_modules是.gitignore-ed.npm install在克隆时运行(注意,没有参数)的指令,或者它们是否为构建文件添加依赖项.