【问题标题】:Assetic: Cannot find module 'less'Assetic:找不到模块“少”
【发布时间】:2014-03-15 13:50:54
【问题描述】:

问题:

  • 我正在使用 laravel 4 + basset 进行资产管理 (OSX)。
  • 我已将 twitter 引导程序作为依赖项添加到我的作曲家。
  • 我想把less文件编译成一个集合:

    Basset::collection('TwitterBootstrap', function($collection)
    {
        // Collection definition.
        $collection->add('../vendor/twbs/bootstrap/less/bootstrap.less');
    })->apply('Less');
    
  • 然后我尝试构建集合:

    php artisan basset:build TwitterBootstrap
    
  • 哪个会引发错误:

    [Assetic\Exception\FilterException]
      An error occurred while running:
      '/usr/local/bin/node' '/private/var/folders/f4/xjby77695pbcgfdjfclfdqd40000gn/T/assetic_less5y7dnh'
    
      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> (/private/var/folders/f4/xjby77695pbcgfdjfclfdqd40000gn/T/assetic_less5y7dnh: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)
    

我在全球范围内安装了 less - 我不确定为什么这会引发错误/要修复什么(我的路径?节点配置?资产配置?)

【问题讨论】:

  • 我不确定 laravel,但我在 symfony 上遇到过这个问题,这是由于我的参数配置中的路径错误。一旦我纠正了节点模块的路径,assetic就可以正常工作了。
  • 同样的问题,这个配置路径修复对我有用:stackoverflow.com/questions/20218206/…

标签: less laravel-4 npm assetic


【解决方案1】:

我遇到了同样的问题,我通过使用 npm 安装 less 解决了它:

npm install less

要在全局范围内使用 less,请不要在项目的根目录下运行“npm install less”。 而是将符号链接添加到项目中的全局链接 (/home/{user}/node_modules/less/):

ln -s /home/{user}/node_modules/less/ /path/to/project/node_modules/less
ln -s /home/{user}/node_modules/less/bin/lessc /path/to/project/node_modules/less/.bin/lessc

【讨论】:

  • 请看我下面的评论 - 我不想在每个项目的基础上安装更少的东西。我希望在全球范围内减少。
  • 我很欣赏你的回复,我已经接受了这个答案 - 但它并不理想。虽然它可能有效,但它并不能帮助我理解错误,或者它发生的原因。
【解决方案2】:

你是怎么少安装的?

npm install less

参考:https://npmjs.org/package/less

编辑...刚刚看到你的脚注。

另一种选择是通过composer安装lessPHP并使用LessphpFilter而不是LessFilter

【讨论】:

  • 虽然我可以在项目级别安装较少,但这似乎很容易解决,但仍然无法解决问题。此外,lessPHP 仅占 less npm 模块的 98% 左右(根据 cmets online),似乎是解决更大问题的创可贴。
猜你喜欢
  • 2018-12-05
  • 2012-05-09
  • 2016-09-18
  • 2018-04-03
  • 2020-11-28
  • 1970-01-01
  • 2018-03-12
  • 1970-01-01
  • 2022-12-15
相关资源
最近更新 更多