많은 검색 결과와 좋은 예가 없는데, 여기에 내가 한 일이 있습니다.
yo ember
발전기로 비계와 yeoman을 사용하고 grunt build
을 사용하여 dist를 구축한다고 가정한다고 가정하십시오.
요 엠 발전기 v0.8은 툴툴 바꾸기 이용한다. 해당 버전으로 업그레이드하십시오. 간단히 말해서, 저는 글로벌 번즈를 index.html에 추가하기 위해 무언가 대체를 사용하고 있습니다. 방법은 다음과 같습니다.
결합-scripts.js 블록 전에 응용 프로그램/index.html을이 스크립트 태그를 추가
#app/index.html
<script>
/*
simplify grunt-replace strategy by placing env vars here.
*/
window.MYCOMPANYCOM_ENV = {
env: '@@env',
apiHost: '@@apiHost'
};
</script>
/* ADD THE ABOVE BEFORE THIS SECTION */
<!-- build:js(.tmp) scripts/main.js -->
<script src="scripts/combined-scripts.js"></script>
<!-- endbuild -->
을 그리고 변경이에 Gruntfile.js에서 설정을 대체 :
module.exports = function (grunt) {
var appConfig = grunt.file.readJSON('app_config.json');
replace: {
app: {
options: {
patterns: [
{
json: appConfig['app']
}
]
},
files: [
{src: '<%= yeoman.app %>/index.html', dest: '.tmp/index.html'}
]
},
dist: {
options: {
patterns: [
{
json: appConfig['dist']
}
]
},
files: [
{src: '<%= yeoman.dist %>/index.html', dest: '<%= yeoman.dist %>/index.html'}
]
}
}
것은 만들기 ./app_config.json의 새 파일
이제 앱 스크립트는 app_에 정의 된 전역 변수에 액세스 할 수 있습니다. config.json.
더 자세히 설명하지는 않겠지 만 개발 단계에서는 문제가 없습니다. grunt build
의 경우, replace:dist
단계를 빌드 단계의 끝으로 이동하고 index.html의 @@ ember 변수를 bower 구성 요소의 경로로 바 꾸었습니다.
emberjs 전에 설정되어있는 ENV 변수가 있습니다. grunt-env는 변수를 정의하는 데 좋습니다. 하지만 내가 선택한 곳에서 무딘 환경 변수를 어떻게 일치시킬 수 있습니까? 찾기 및 바꾸기와 같은 방법이 있습니까? 어떻게하면 서버를 구축하거나 실행하기 전에 변수를 특정 위치에 배치 할 수 있습니까? –
[이 SO 스레드] (http://stackoverflow.com/questions/12401998/have-grunt-generate-index-html-for-different-setups)의 답변을 참조하십시오. 내 답변에 따라, 나는 당신이 당신의 앱에 환경 변수를 드러내 기 위해 [''grunt-usemin'] (https://npmjs.org/package/grunt-usemin)과 같은 것을 사용할 것을 제안했지만, [스레드 연결된] (http://stackoverflow.com/questions/12401998/have-grunt-generate-index-html-for-different-setups)이 고양이를 스킨 수있는 더 많은 방법이 있다는 것을 알 수 있습니다. –