我是sails.js的新手,但过去几天我一直在阅读一堆文档,所以我觉得我对平台有了基本的把握。但我似乎无法添加和注册自定义grunt任务。我尝试了几种方法,似乎没有一种方法可行。所以我想我会保持简单,只是用一个现有的寄存器文件注册一个任务,但我仍然不打算让这个方法工作。
所以我将以下Gruntfile添加到tasks / config / comp.js
module.exports = function(grunt) {
grunt.config.set('comp', {
dev: {
options: {
module: 'system',
moduleResolution: 'node',
target: 'es3',
experimentalDecorators: true,
emitDecoratorMetadata: true,
noImplicitAny: false
},
files: [{
expand: true,
cwd: 'assets/js/',
src: [ '**/*.ts' ],
dest: '.tmp/public/js',
ext: '.js'
}]
}
});
grunt.loadNpmTasks('grunt-ts');
};
我将以下行添加到tasks / register / compileAssets.js
/**
* `compileAssets`
*
* ---------------------------------------------------------------
*
* This Grunt tasklist is not designed to be used directly-- rather
* it is a helper called by the `default`, `prod`, `build`, and
* `buildProd` tasklists.
*
* For more information see:
* http://sailsjs.org/documentation/anatomy/my-app/tasks/register/compile-assets-js
*
*/
module.exports = function(grunt) {
grunt.registerTask('compileAssets', [
'clean:dev',
'jst:dev',
'less:dev',
'copy:dev',
'coffee:dev',
'comp:dev'
]);
};
但是每当我运行sails lift
时,我都会收到以下错误
info:启动应用...
信息: 信息:.- ..-。 信息: info:Sails< | 。,..-。 info:v0.12.13 | \ 信息:/ |。\ info:/ || \ 信息:,'|' \ 信息:.-'.- == | / _--' info:
--'-------' info: __---___--___---___--___---___--___ info: ____---___--___---___--___---___--___-__ info: info: Server lifted in
C:\ Users \ josh \ Documents \ PGW` info:要查看您的应用,请访问http://localhost:1337 info:要关闭Sails,请随时按+ C.debug:--------------------------------------------- ---------- debug ::: Thu Jun 08 2017 16:32:01 GMT-0600(Mountain Daylight Time)
debug:环境:开发 debug:端口:1337 debug:------------------------------------------------ ------- 错误:** Grunt ::发生错误。 **
错误:
因警告而中止。
警告:找不到任务“comp:dev”。
错误:看起来发生了Grunt错误 - 错误:请修复它,然后重新启动Sails 以继续运行任务(例如,观察资产的变化) 错误:或者如果您遇到困难,请查看下面的问题排查提示。
错误:疑难解答提示: 错误: 错误:* - >是否在本地安装了“grunt”和相关的grunt任务模块?如果您不确定,请运行
npm install
。 错误: 错误:* - >您可能有格式错误的LESS,SASS,CoffeeScript文件等。 错误: 错误:* - >或者您可能没有权限访问.tmp
目录? 错误:例如,C:\Users\josh\Documents\PGW\.tmp
? 错误: 错误:如果您认为可能是这种情况,请尝试运行: 错误:sudo chown -R YOUR_COMPUTER_USER_NAME C:\ Users \ josh \ Documents \ PGW.tmp
我几个小时以来一直在抨击我,我不明白为什么sails lift
不能完成我的任务。我觉得我在阅读sails docs和其他stackoverflow文章之间已经很好地遵循了指示。有人能帮助我理解我在这里缺少的东西吗?
由于
答案 0 :(得分:0)
您正在尝试运行已定义的comp
目标但grunt未找到关联的comp
任务名称 - > grunt插件映射以执行它。
您似乎正在尝试使用grunt-ts
grunt.loadNpmTasks('grunt-ts');
其中添加了ts
任务。改变' comp'到达目标定义中的ts
:
grunt.config.set('ts', {
并更新compileAssets.js文件
grunt.registerTask('compileAssets', [
'clean:dev',
'jst:dev',
'less:dev',
'copy:dev',
'coffee:dev',
'ts:dev' //execute grunt-ts
]);
这应该足以修复。如果您仍有问题,请确保已安装grunt-ts
:
npm install grunt-ts
如果你真的想静态地将任务名映射到插件,你可以使用像jit-grunt这样的东西为你做这个:
require('jit-grunt')(grunt, {
comp: 'grunt-ts', //comp now maps to grunt-ts plugins
});