减少Windows Node.js挂起
我一直在尝试在Windows上安装Symfony2,以便我可以用更少的资源使用assetic 我已经安装了node.js for Windows(0.6.8)。然后我运行了减少Windows Node.js挂起,windows,node.js,symfony,less,assetic,Windows,Node.js,Symfony,Less,Assetic,我一直在尝试在Windows上安装Symfony2,以便我可以用更少的资源使用assetic 我已经安装了node.js for Windows(0.6.8)。然后我运行了npm install less--global,并在C:\Users\Matt\AppData\Roaming\npm\node\u模块中找到了less 就我的Symfony设置而言,我拥有Assetic的主分支(由于我在1.0.2中读到的一个bug),但是AsseticBundle 经过一些工作,我能够通过以下方式获得一个
npm install less--global
,并在C:\Users\Matt\AppData\Roaming\npm\node\u模块中找到了less
就我的Symfony设置而言,我拥有Assetic
的主分支(由于我在1.0.2中读到的一个bug),但是AsseticBundle
经过一些工作,我能够通过以下方式获得一个无示例的文件进行渲染:
然后我切换了一个.less文件,该文件@imports其他.less文件(在同一子目录中)。每当我尝试转到本地服务器上的该页面时(使用此较少的配置),它就会挂起,我可以看到命令进程和node.exe进程都在运行
该命令正在尝试运行node.js中的脚本,该脚本存在于我的临时目录中。我可以在命令提示符下通过node.js运行该文件,但无法使用Symfony/Assetic加载该文件
在Windows上是否仍然可以使用node.js、less和assetic
以下是我的相关配置文件部分:
# Assetic Configuration
assetic:
debug: %kernel.debug%
use_controller: false
bundles: [FeedStreamMainBundle]
# java: /usr/bin/java
filters:
cssrewrite: ~
less:
node: %assetic_node%
node_paths: [%assetic_less_path%]
yui_js:
jar: "%kernel.root_dir%/Resources/java/yuicompressor.jar"
yui_css:
jar: %kernel.root_dir%/java/yuicompressor-2.4.2.jar
# closure:
# jar: %kernel.root_dir%/java/compiler.jar
开发人员配置覆盖:
assetic:
use_controller: true
在parameters.ini中:
assetic_node="C:\\Program Files (x86)\\nodejs\\node"
assetic_less_path="C:\\Users\\Matt\\AppData\\Roaming\\npm\\node_modules"
由于没有人真正有任何答案,我只能假设很少有Windows开发人员在Symfony2中使用LESS和node.js 我的解决方案是使用LESSHPP,一旦我将其放入自动加载器,它就可以正常工作。是的,使用(服务器端) Symfony2.1。如何集成assetic LESSHPP过滤器。添加以下内容 打包到composer.json: 运行php composer.phar更新 并更新您的config.yml 或使用(客户端)
我使用了以下方法,这对我很有用。请注意,它是“node.exe”,而不仅仅是node
node: "C:\\Program Files (x86)\\nodejs\\node.exe"
node_paths: ["C:\\Users\\Ben\AppData\\Roaming\\npm\\node_modules"]
apply_to: "\.less$"
我将参数更改为:
assetic\u less\u path=“C:\\web\u workspace\\lib\\node\u modules”
,我可以再次加载页面。然后我尝试再次加载该页面或正常页面,但它又挂起了…我已经一年没有研究过这个了。但可能不是。可能会开一个问题?我在这里开了一个,如果你可以的话,投它一票。Assetic中有一个bug。我打开了一个拉请求来修复它。原因是env变量SystemRoot尚未传递到node.js进程。由于LESSHP中less的新实现中存在错误,此解决方案有效
#...
assetic:
#...
filters:
lessphp:
file: %kernel.root_dir%/../vendor/leafo/lessphp/lessc.inc.php
apply_to: "\.less$"
<link rel="stylesheet/less" type="text/css" href="styles.less">
<script src="less.js" type="text/javascript"></script>
node: "C:\\Program Files (x86)\\nodejs\\node.exe"
node_paths: ["C:\\Users\\Ben\AppData\\Roaming\\npm\\node_modules"]
apply_to: "\.less$"