【问题标题】:Cannot find node_module less in dev environnement在开发环境中找不到节点模块少
【发布时间】:2014-03-28 10:52:36
【问题描述】:

在 symfony2 项目中,我使用带有较少过滤器的资产。 prod 环境中一切正常,命令assetic:dump 生成正确的css 文件。 但是当我在开发环境中渲染页面时,我的 css 文件告诉我找不到 less 模块。 看起来是这样的:

[exception] 500 | Internal Server Error | Assetic\Exception\FilterException
[message] An error occurred while running:
"/usr/bin/node" "/tmp/assetic_lessb45F2E"

Error Output:

module.js:340
throw err;
      ^
Error: Cannot find module "less"

我的 config.yml 好像不错

assetic:
    debug:          %kernel.debug%
    use_controller: false
    filters:
        cssrewrite: ~
        less:
            node: /usr/bin/node
            node_paths: /usr/local/lib/node_modules
            apply_to: "\.less$"

我的项目由 www-data 用户运行的 Apache 提供服务。

我尝试 chmod 777 我的 node_modules 文件夹以防万一。

【问题讨论】:

    标签: css symfony less


    【解决方案1】:

    您的配置不尊重正确的层次结构,无需指定.less 扩展名,less 过滤器的 ir-s 默认配置:

    assetic:
        debug:          %kernel.debug%
        use_controller: false
        node: /usr/bin/node
        node_paths: /usr/lib/node_modules
        filters:
            cssrewrite: ~
            less: ~
    

    检查 /usr/bin 路径是否有节点二进制文件(或链接),但也许你应该定义这个二进制文件(看起来像你本地安装的节点):

    node: /usr/local/bin/node
    node_paths: /usr/LOCAL/lib/node_modules
    

    【讨论】:

    • 我更改了配置以尊重层次结构,但这并没有解决问题。我检查了我的节点路径,它是正确的,less 模块也安装了全局选项。
    • 所以试试 /usr/lib/node_modules 的 node_paths
    • 好像好多了,我没有更多错误了,但是我的css文件是空的。
    • 这是另一个问题。如果您从带有 less 的 shell 命令生成它们会发生什么?
    • 它按预期工作,或者使用较少的命令,或者使用assetic:dump
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-28
    • 1970-01-01
    • 2022-12-15
    • 2019-03-13
    • 2021-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多