小さなDojoアプリケーション(基本的な予約システム)に最適なディレクトリ構造を見つけようとしています。ログイン/登録を書き終えたところです。
これが私が今持っているものです:
.
├── app
│ ├── client
│ │ ├── JsonRest.js
│ │ ├── lib
│ │ │ ├── defaultSubmit.js
│ │ │ ├── globals.js
│ │ │ ├── globalWidgets.js
│ │ │ ├── Logger.js
│ │ │ └── stores.js
│ │ ├── login.js
│ │ ├── main.css
│ │ ├── main.js
│ │ ├── register.js
│ │ ├── rrl.css
│ │ ├── TODO.txt
│ │ ├── validators.js
│ │ └── widgets
│ │ ├── _AjaxValidatorMixin.js
│ │ ├── AlertBar.js
│ │ ├── AppMainScreen.js
│ │ ├── BusyButton.js
│ │ ├── css
│ │ │ └── AlertBar.css
│ │ ├── Dashboard.js
│ │ ├── LoginForm.js
│ │ ├── RegisterForm.js
│ │ ├── SearchPage.js
│ │ ├── StackFading.js
│ │ ├── _StackFadingMixin.js
│ │ ├── TabFading.js
│ │ ├── templates
│ │ │ ├── LoginForm.html
│ │ │ ├── RetypePassword.html
│ │ │ └── SearchPage.html
│ │ ├── ValidationEmail.js
│ │ ├── ValidationPassword.js
│ │ ├── ValidationUsername.js
│ │ ├── ValidationWorkspace.js
│ └── server
│ ├── AppErrorHandler.js
│ ├── auth.js
│ ├── db.js
│ ├── globals.js
│ ├── node_modules
│ │ ├── express
│ │ ├── jade
│ │ ├── mongodb
│ │ └── mongoose
│ ├── public
│ │ ├── app -> ../../client/
│ │ └── libs -> ../../../libs
│ ├── routes
│ │ └── routes.js
│ ├── server.js
│ ├── test.js
│ └── views
│ ├── index.jade
│ ├── login.jade
│ └── register.jade
├── libs
├── build-report.txt
├── dojo -> dojo-1.7.1
├── dojo-1.7.1
│ ├── app -> ../../app/client
│ ├── dijit
│ ├── dojox
│ ├── dojo
│ └── util
└── dojo-1.8.0
├── app -> ../../app/client
├── dijit
├── dojox
├── dojo
└── util
その背後にある考え方は次のとおりです。
「app」ディレクトリは、どこかのgitリポジトリにあります(実際には、もうすぐ作成します)。ディレクトリ「client」(すべてのクライアント側コード)と「server」(ノードコード)があります。
「libs」には、dgridなどを追加します。Dojo1.8をノード(!)内にロードできることにも気づきました。後でこれで遊んでみます-エキサイティングです!
さて、ここで私が基本的にシンボリックリンクを使用して物事を機能させていることがわかります。
サーバー側:「public」の下に、「app」と「libs」へのシンボリックリンクがありました。そうすれば、HTMLから/libs/dojo/dojox/form/resources/BusyButton.css
、または(重要!)/libs/dojo/dojo/dojo.js
および/app/main.js
(次にAppMainScreenを単純なインスタンスでインスタンス化する)などにアクセスできます。require(["app/widgets/AppMainScreen" ], function( AppMainScreen){ ...
クライアント側:最新のDojoへのシンボリックリンクがあります(ボイラープレートにはまだDojo 1.8の問題があるため、今のところ1.7を使用しています)。ただし、アプリ内でこれを機能させるには、次のようにします。
require(["app/widgets/AppMainScreen" ], function( AppMainScreen){
Dojo内の「app」へのシンボリックリンクがあります。
今:私は基本を理解しています(たとえば、Dojo内の「app」へのシンボリックリンクは、DojoConfigを使用するだけで解決されると思います)。しかし...まあ、これは私の現在の100%最適化されていない、決して構築されていないツリーです。
この木の承認の目盛りを教えてください。物事を「構築」し始めたら、それは機能しますか?(私はまだそれをすることから何マイルも離れています、しかし私は結局それ以外の場合私の[妊娠中の]妻は夢中になるでしょう!)「app」へのシンボリックリンクを回避することは、私がすべきだと思うことの1つです(しかし、繰り返しになりますが、そうする必要がありますか?)。
ありがとうございました!
メルク。