Symfony 2.3在项目中嵌入“less”时效果不佳

时间:2014-02-14 14:01:07

标签: node.js symfony less symfony-2.3 symfony-2.2

我将所有node.js依赖项嵌入到项目中,并且除了“less”之外都可以工作。关于如何解决这个问题的任何想法?

这是我的配置:

assetic:
debug:          %kernel.debug%
use_controller: false
node: "%assetic_node%"
node_paths:
    - "%kernel.root_dir%/Resources/node_modules/"
    - "%kernel.root_dir%/Resources/node_modules/less/node_modules/"
    - "/usr/lib/node_modules/"
    - "/usr/local/lib/node_modules/"
    - "/opt/local/lib/node_modules/"
    - "/root/node_modules/"
filters:
    cssmin: ~
    cssrewrite: ~
    less:
        apply_to: "\.less$"
        bin: %kernel.root_dir%/Resources/node_modules/less/bin/lessc
    coffee:
        apply_to: "\.coffee$"
        bin: %kernel.root_dir%/Resources/node_modules/coffee-script/bin/coffee
    uglifyjs2:
        apply_to: "\.js$"
        bin: %kernel.root_dir%/Resources/node_modules/uglify-js/bin/uglifyjs
    uglifycss:
        apply_to: "\.css$"
        bin: %kernel.root_dir%/Resources/node_modules/uglifycss/uglifycss

运行assetic时出现以下错误:dump:

  [Assetic\Exception\FilterException]                                             
  An error occurred while running:                                                
  '/usr/bin/node' '/tmp/assetic_lessFnBKuF'                                       

  Error Output:                                                                   

  module.js:340                                                                   
      throw err;                                                                  
            ^                                                                     
  Error: Cannot find module 'less'                                                
      at Function.Module._resolveFilename (module.js:338:15)                      
      at Function.Module._load (module.js:280:25)                                 
      at Module.require (module.js:364:17)                                        
      at require (module.js:380:17)                                               
      at Object.<anonymous> (/tmp/assetic_lessFnBKuF:1:74)                        
      at Module._compile (module.js:456:26)                                       
      at Object.Module._extensions..js (module.js:474:10)                         
      at Module.load (module.js:356:32)                                           
      at Function.Module._load (module.js:312:12)                                 
      at Function.Module.runMain (module.js:497:10)                               

1 个答案:

答案 0 :(得分:0)

首先确保您的系统中安装了较少的依赖项及其依赖项:

npm install less -g

接下来,根据您的发行版,node_modules可以驻留在不同的位置,因此请检查您是否安装较少,以及lessc在哪里。检查我的配置:

less:
    bin: /usr/bin/lessc
    node: /usr/bin/nodejs
    node_paths: [/usr/lib/node_modules]
    apply_to: "\.less$"