Dojo에서 상호 도메인 사용자 정의 빌드를 구현하는 데 문제점이 있습니다. 다음과 같이 상황은 다음과 같습니다 내가 너무 basicly 디렉토리 구조는
핵심 \ (내 모듈)
엔
\ \
FR \
NLS처럼, 현지화 번들의 좋은 번호, 꽤 많은 응용 프로그램이 ....
내 모듈을 빌드 할 때 결과는 큰 core.js/core.xd.js 파일입니다.이 파일에는 지역화가 포함되어 있지 않습니다. 현지화 nls 디렉토리 (en/fr/etc)에서 각 번들을 빌드/축소 한 후 빌드하고 각 언어에 대해 더 큰 파일 인 core_fr.js/core_en.fs (Dojo/Dijit 관련 문자열 만 포함)를 찾습니다.NLS/현지화를 사용하여 Dojo 사용자 빌드
는 나의 빌드 스크립트는
availableFlatLocales is undefined
[Break on this error] var locales = availableFlatLocales.split(",");\r\n
으로 그러나, 나는 1 NLS
여기
dojo["requireLocalization"]("core", "FuseboxContent");
가 죽을를로드하려고 core.controller.Fusebox 클래스에서
layers: [
{
resourceName: "core",
name: "../core/trusted.js",
dependencies: [
"dojo.i18n",
//data
"dojox.data.JsonRestStore",
"dojox.data.XmlStore",
"dojox.rpc.Service",
"dojox.form.FileInput",
...
"core.controller.Fusebox"
],
prefixes: [
["dijit","../dijit"],
["dojox","../dojox"],
["core", "../core"]
]
입니다
html 파일의 내 설정은 다음과 같습니다.
// version build
var djConfig = {
baseUrl: 'https://..../',
modulePaths: { 'core': 'core'},
useXDomain: true,
xdWaitSeconds: 10,
parseOnLoad: true,
afterOnLoad: true,
// debugAtAllCosts: true,
isDebug: true,
locale: "fr"
};
다음
<script type="text/javascript" src="http://xd.woopic.com/dojoroot/1.3.2-xd/dojo/dojo.xd.js.uncompressed.js"></script>
<script type="text/javascript" src="https://..../core/trusted.js.uncompressed.js"></script>
나는 물론, 디버그에 대한 압축을 사용했다. 문제점은 런타임시 Dojo가 내 번들을로드하려고 시도하고 찾을 수 없기 때문에 레이어 파일에 임베드하고 싶기 때문에 추가로드가 필요하지 않습니다. 달성 될 수 있습니까? 그리고 우리가 작업하는 동안 도메인 간 로컬라이제이션이있는 작업 사이트/예제가 있습니까? 업데이트 : 필자는 분석을 계속했고, 동적으로 nls를로드한다는 사실에 문제가있어 컴파일러가 requireLocalization() 호출을 찾을 수 없습니다. 따라서 프로젝트 nls 파일에는 dojo/dijit 관련 내용 만 포함됩니다. 그러나 더미 파일에 몇 가지 번들로드를 추가했으며 core/nls의 내용은 여전히 빌더에서 무시됩니다.
정보를 제공해 주셔서 감사합니다. 검색이 끝나면이 주제에 대한 정보가 많이 없습니다.
저는 xd 문제의 전문가는 아니지만, modulePaths의 nls 항목을보고 싶습니다. 필요하지 않아야합니다. 당신이 그들을 사용하고 당신이 그들을 제거하면 어떤 차이가 있습니까? – peller
변경 사항을 제거했으나 아직 현지화되지 않았습니다. 나는 그들이 몇 가지 유산 이유 때문에 거기에서있는 곳이라고 생각한다. 그러나 당신이 옳았다면 쓸모 없다. 그에 따라 게시물을 업데이트했습니다. – aciobanu