0

小さな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つです(しかし、繰り返しになりますが、そうする必要がありますか?)。

ありがとうございました!

メルク。

4

1 に答える 1

0

ノードのファンではありませんが(まったく知識もありません)、巨大なjavascriptライブラリがあるように見えます:)

buildprofile の作成を検討し、プレフィックス キーを使用してスクリプトの場所を設定することをお勧めします。ビルドの結果、dojo、dijit、dojox と共存する「app」フォルダーが自動的に取得されます。

実際には、Dojo アプリケーション レイヤー用の別のリポジトリができたら、SDK ルート内でチェックアウトするだけです。

wget download.dojotoolkit.org/dojotoolkit-1.7.2-src.tar.gz -O djsrc.tar.gz && tar xfz djsrc.tar.gz && rm djsrc.tar.gz
cd dojotoolkit-1.7.2-src/
svn checkout http://example/mylibrary app
sh utils/buildscripts/build.sh --profile app/package.profile --release /var/nodejs/docroot/lib/

メイン ドキュメント ルート (/lib) 以外の場所で app.widgets を開発しても、まったく害はありません。ローダーにどこを見るかを伝えるグローバル変数を 1 つ設定するだけです。

構築された場合、何も必要ありませんが、現在のツリーに関する限り、次のようなことを試してください

<script>
var isDevelopement = true;

var dojoConfig = {
  packages :  (isDevelopement) ? [ name: 'app', location: '/app/client/' ] : []
}
</script>
于 2012-08-16T20:57:00.643 に答える