【问题标题】:Compile less files in node.js project on Windows Azure在 Windows Azure 上的 node.js 项目中编译更少的文件
【发布时间】:2013-06-05 19:44:58
【问题描述】:

我有一个 node.js 项目,当我启动应用程序时,它会将较少的文件编译为 css。我通过修改package.json 中的start 脚本来做到这一点,如下所示:

{
    // omitted for brevity
    start: { lessc public/stylesheets/styles.less > public/stylesheets/styles.css; node app.js; }
}

这在本地运行良好,但在我的 Windows Azure 实例上根本不行。要么是因为需要在计算机上全局安装 less 才能使其正常工作,要么是因为 Azure 不运行 npm start。或两者。不管怎样,我需要另一种解决方案!

我认为custom deployments 是答案(我正在使用 git 远程部署),我尝试修改 deploy.cmd 以包含

call "lessc public/stylesheets/styles.less > public/stylesheets/styles.css;"

没有快乐。我什至尝试过

call "%SITE_ROOT%/node_modules/less/bin/lessc %SITE_ROOT%/public/stylesheets/styles.less > %SITE_ROOT%/public/stylesheets/styles.css;

我是不是走错路了?如何将编译后的 css 文件置于源代码管理之外,并在部署到 Azure 后在服务器上编译它们?

谢谢!

【问题讨论】:

    标签: node.js azure less


    【解决方案1】:

    好吧,我想,我终于要搞定了。

    出于某种原因,即使物理文件在磁盘上(我可以使用我的 FTP 客户端查看它们),Azure 也不允许我在 \node_modules\less\bin 文件夹中运行 lessc,但它确实允许我在\node_modules\.bin 文件夹。

    最后,我在 deploy.cmd 文件中添加了以下几行,它成功了!

    IF NOT DEFINED LESS_COMPILER (
      SET LESS_COMPILER=%DEPLOYMENT_TARGET%\node_modules\.bin\lessc
    )
    
    call %LESS_COMPILER% %DEPLOYMENT_TARGET%\public\stylesheets\styles.less > %DEPLOYMENT_TARGET%\public\stylesheets\styles.css
    

    【讨论】:

    • 第一次尝试失败的原因是什么?
    • @DavidEbbo 我不能确定,但​​我认为引号很重要——我记得看到过类似“行太长”(或类似的措辞?);当 LESS_COMPILER 设置为 /node_modules/less/bin 文件夹时,它根本没有找到lessc - 失败并显示“lessc 不是可执行文件”
    猜你喜欢
    • 2014-02-10
    • 1970-01-01
    • 2013-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-24
    相关资源
    最近更新 更多