在Windows Azure上的node.js项目中编译较少的文件
我有一个node.js项目,当我启动应用程序时,它会将较少的文件编译成css。我通过修改在Windows Azure上的node.js项目中编译较少的文件,node.js,azure,less,Node.js,Azure,Less,我有一个node.js项目,当我启动应用程序时,它会将较少的文件编译成css。我通过修改package.json中的start脚本来实现这一点,如下所示: { // omitted for brevity start: { lessc public/stylesheets/styles.less > public/stylesheets/styles.css; node app.js; } } 这在本地运行得很好,但在我的Windows Azure实例上根本不起作用。这可
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
。或者两者兼而有之。不管怎样,我都需要另一个解决方案
我认为答案是正确的(我使用的是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;
我走错方向了吗?在部署到Azure后,我如何将已编译的css文件置于源代码控制之外,并在服务器上编译它们
谢谢 好吧,我想我终于开始了
出于某种原因,即使物理文件在磁盘上(我可以通过FTP客户端看到它们),Azure也不允许我在\node\u modules\less\bin
文件夹中运行LESC,但它允许我在\node\u 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
你第一次尝试失败的原因是什么?@davidebo我不能肯定,但我认为引号很重要——我记得看到类似“线太长了”(或类似的措辞);当LESS_编译器设置为/node_modules/LESS/bin文件夹时,它根本找不到lessc-失败,出现“lessc不是可执行文件”