2014-09-30 3 views
1

우리 프로젝트를 Sails.js로 포팅하는 것을 고려하고 있습니다. 우리의 고정 자산은 3GB가 넘는 매우 큰 규모입니다. 따라서 앱의 크기가 두 배로 커져서 심각한 한계가 있습니다. 이 기본 동작을 방지하기 위해 Sails js를 수정하거나 다른 프레임 워크를 추천 할 수 있습니까?돛 js - 자산 사본을 만듭니다.

+0

자산이 돛에 자동으로로드됩니다 – Gelidus

+0

@Gelidus 애셋의 정적 파일을 애셋 폴더에 복사하기 만하면 모든 애셋이 복사 된 .tmp/public 폴더가 자동으로 생성되었습니다. –

+0

Sails는 해당 폴더를 공용 서버 폴더로 만듭니다. 구성 파일로 가서 "경로"를 설정하려고합니다. {public :} 자산 폴더 – Gelidus

답변

6

세일즈는 앱을들 때마다 Grunt를 사용하여 기본으로 .tmp/public 폴더로 애셋을 복사합니다. 이를 통해 공개 할 자산을 선택하고 선택할 수 있으며 다양한 환경에서 자산을 컴파일 및 축소 할 수 있습니다. .tmp을 버전 관리하에 두지 않는 한 앱의 크기가 두 배로 늘지는 않지만, 애셋이 많은 경우 앱이 느리게 시작될 수 있습니다.

가장 간단한 해결책은 그루터스를 끄고 에있는 자산 폴더에서 정적 자산을 직접 제공하는 것입니다. 그렇게하려면

  1. 설정/assets.js라는 새로운 설정 파일을 작성
  2. 을 (Gruntfile.js.bak 또는 로 이름을 바꿉니다)를 Gruntfile.js 삭제 (또는 무엇이든 당신이 좋아하는, 이름) 문제, 그리고 넣지 않는 내부 다음

    module.exports = { 
        paths: { 
        public: __dirname+"/../assets" 
        } 
    }; 
    

이유는 북동에서 이것을 넣어 w 설정 파일이 아닌 config/local.js입니다. local.js은 기본적으로 .gitignore 파일에 있습니다. 따라서 Git을 버전 제어에 사용하고 있다면 매번 해당 파일을 다시 만들어야합니다 당신은 새로운 기계에 응용 프로그램을 설치합니다. 자바 스크립트/CSS 파일을 더 이상 자동 연결 사용

  • 생산 모드에서

    • 더 이상 자동 컴파일/자산의 축소하면

      나는이 간단한 해결책이지만 몇 가지 단점을 가지고 말했듯 당신이 이러한 기능을 유지하지만, 여전히 .TMP에 많은 파일을 복사하지 않도록하려면 asset pipeline

    , 그 대답은 기본 그런트 작업을 수정에있다 (그것이 그들이 당신의 프로젝트에있는 것입니다!).

     
    "hooks": { 
    "grunt": false 
    } 
    
  • 0

    는 Sails.js 0.11에서 그냥 파일을 .sailsrc하기 위해 다음 코드를 추가 할 수 있습니다

    ?
    관련 문제