Windows Server 2012에서 CruiseControl.NET을 실행하는 연속 통합 서버가 있습니다.이 서비스는 사용자 ccnet
으로 실행됩니다. RDP를 통해 서버에 로그온하고 명령 창을 열고 에 C:\Tools\NodeJS
이 포함되어 있는지 확인했습니다.nant를 사용하여 exec를 통해 LESS 컴파일
내가 덜 사용하기 시작한 프로젝트가 많고 CI 서버의 경우 설치해야 할 것이 아니라 인스턴스가 하나만있는 것이 좋습니다. (프로젝트는 로컬에서 실행될 필요가 없으며 디버그 모드로 실행되지 않을 때 LessJS를 제거하는 플래그가있는 LessJS를 사용합니다).
C:\CruiseControl\MyProject\private\working>lessc.cmd Website\Content\MyProject.less MyProject.css
C:\CruiseControl\MyProject\private\working>dir MyProject.css
...
06/24/2014 11:52 AM 159,145 MyProject.css
을하지만 NANT에서 exec
를 통해이를 실행하려고하면, 나는 악명 높은 "을 (를) 찾을 수 없습니다 모듈"얻을 :
C:\Tools\NodeJS>npm install less -g
C:\Users\ccnet\AppData\Roaming\npm\lessc -> C:\Users\ccnet\AppData\Roaming\npm\node_modules\less\bin\lessc
[email protected] C:\Users\ccnet\AppData\Roaming\npm\node_modules\less
├── [email protected]
... etc...
나는 수동으로 lessc
를 호출 할 수 있습니다 분명히
module.js:340
throw err;
^
Error: Cannot find module 'c:\CruiseControl\MyProject\private\working\node_modules\less\bin\lessc'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.runMain (module.js:492:10)
at process.startup.processNextTick.process._tickCallback (node.js:244:9)
을 그것은 더 적은 것을 위해 틀린 장소에서보고있다. 하지만 왜? 내 PATH
은 언급 한대로 정확합니다. 명령 행에서 작동합니다. workingdir
특성은 명령 줄 예제와 같은 폴더로 설정됩니다.
이 시나리오를 CI 시나리오에 설정하는 더 좋은 방법이 있습니까?
여러 nodejs 앱 호출을 포함하는 bat 파일을 실행할 수도 있습니다. 그러나 모든 것을 단일 스크립트 (nAnt)에 저장하기 때문에 접근 방법이 훨씬 마음에 들었습니다. [exec program = "some.bat"] – user1821052