Sails.js + grunt没有编译资产

时间:2014-07-01 08:00:45

标签: javascript css node.js less sails.js

我对整个NodeJS风暴都很陌生,经过一些研究,我决定使用Sails.JS作为我的框架。

一切正常,直到我尝试使用Bootstrap Bootswatch .less文件。

如果我将bootswatch.less复制到我的styles文件夹中,并刷新页面,那么我的所有资产都会抛出404错误。

我的目录树如下所示:

Root
|_api
|_assets
|_|_images
|_|_linker
|_|_|_fonts
|_|_|_js
|_|_|_styles
|_|_|_|_bootstrap.css
|_|_|_|_custom.less
|_|_|_|_variables.less
|_|_|_|_bootswatch.less
|_|_|_templates
|_configs
etc.

我的gruntfile.js看起来像这样:

var cssFilesToInject = [

'linker/styles/variables.less',
'linker/styles/bootstrap.css',
'linker/styles/bootswatch.less',
'linker/styles/custom.less',

'linker/**/*.css'
];

我尝试使用sails lift --verbose启动服务器,并且没有抛出任何错误。

2 个答案:

答案 0 :(得分:1)

有同样的问题,但发现a better solution - 尽管不完美。基本上,您在项目根目录中运行grunt compileAssets。如果可行,我们就走在正确的轨道上。

最好解决帆在升起时没有编译资产的真正问题。

所以这对我有用:

我挖掘了grunt文件,以便对正在发生的事情有所了解。由于手动编译资产,似乎Grunt运行正常。然后我偶然发现了项目根目录中的.sailsrc文件。这是它的样子:

{
  "generators": {
    "modules": {}
  },
  "hooks": {
    "grunt": false
  }
}

看起来Grunt被关掉了。我把它改成了这个,抬起帆,它起作用了!

{
  "generators": {
    "modules": {}
  },
  "hooks": {
    // "grunt": false
  }
}

我真的不知道这是做什么的,所以也许这是一个很好的解决方案,但它让我重新开始工作。当我获得更多使用Sails的经验时,如果这不对,我会正确修复它。

答案 1 :(得分:0)

那里有很好的框架选择! Sails非常棒,可以用Angular.js创建一个平均堆栈,无论如何,我所看到的Sails.js自动编译的所有内容都是最好的,因为这个问题有很多主题。

我也遇到了使用SCSS文件的问题。

总之,我认为最好是使用您使用的终端手动编译文件并将其链接到styles目录。

如果你设法找到另一种方法,那么资产没有编译的原因可能是由于你将花费数小时试图整理的大量因素。