2013-07-08 4 views
1

Durandal 기반 솔루션을 배포하려고했습니다. 하지만 일단 배포되면 다음 오류가 발생합니다.잡히지 않은 ReferenceError : requirejs가 정의되지 않았습니다. main.js

Uncaught ReferenceError: requirejs is not defined main.js:1 
(anonymous function) 

프로젝트와 함께 배포 된 파일을 탐색했으며 솔루션/경로에 require가 포함되었습니다. 파일이 함께 배치되었습니다. 개발 및 제작 사본간에 다른 점은 내 Java 스크립트 파일이 압축된다는 것입니다. 다음 단계는 이것이 어떤 식 으로든 문제와 관련이 있는지 확인하는 것입니다.

업데이트 :

검사를 IsDebuggingEnabled 제거하고 단지 (명백하게) 다음과 같은 IT의 모든 작품을두면

<body> 
    <div id="applicationHost"> 
     @Html.Partial("_splash") 
    </div> 

    @Scripts.Render("~/scripts/vendor") 
    @if (HttpContext.Current.IsDebuggingEnabled) 
    { 
     <script type="text/javascript" src="~/App/durandal/amd/require.js" data-main="@Url.Content("~/App/main")"></script> 
    } 
    else 
    { 
     <script type="text/javascript" src="~/App/main.js"></script> 
    } 

</body> 

: 나는 다음으로 문제의 원인을 발견

<script type="text/javascript" src="~/App/durandal/amd/require.js" data-main="@Url.Content("~/App/main")"></script> 

내가 아는 한,이 코드는 템플릿에 의해 초기 프로젝트 설정에서 생성되었습니다. 따라서 Durandal VSX 템플릿의 모든 것이 그대로 유지되어야합니다.

비 디버깅 배포 중에 require가 제거되는 이유는 무엇입니까? :/

+1

... 부수적으로. 득표 수를 줄인 의견은 임의의 분노 유도 투표보다 유용합니다. 누구도 건설적인 피드백없이 어떻게 배울 것입니까? –

+1

나는 동의한다. 보상하기 위해 Upvoted. – RainerAtSpirit

답변

2

Durandal 1.2에는 Almond (기본값) 또는 RequireJS가 번들 된 최적화 된 버전 main-built.js이 생성되는 optimizer.exe (http://durandaljs.com/documentation/Optimizing-On-Dot-Net/)가 함께 제공됩니다. 위의 예제는 오류가 발생하는 이유 main.js 소스를로드하려고 시도합니다.

optimizer.exe를 성공적으로 실행 한 후 코드를이 코드로 변경해야합니다.

... 
else 
{ 
    <script type="text/javascript" src="~/App/main-built.js"></script> 
} 
+0

그냥 의심스러운 내용을 확인하기 위해 빈 프로젝트를 만들었습니다 ... 3/4 개월 전쯤에이 듀란 데 템플릿을 다운로드하여 사용하고있었습니다. 나는 내가 그 정확한 라인을 바꿨을지도 모른다고 생각한다. 그리고 didnt는 그것을 되돌아 간다. .../당신에게 감사해라. –

관련 문제