24

それでも、YeomanとExpressを使用して実行する例を取得してみたいと思います。

次のことを試してみましたが、「大丈夫」でしたが、ルートのマージに行き詰まりました。(読みやすくするために単純化しすぎています)

mkdir test
cd test
express
mkdir app
cd app
mkdir js
cd js
yeoman angular

次に、Gruntfile.jsで「output:dist」を「output:../../public」に変更しました

これで、両方のサーバーが単独で正常に実行されます(たとえば、yeomanサーバーとノードapp.js)。また、「yeoman build」を実行して、縮小されたJSをエクスプレスアプリの/publicに出力することもできます。

ルートがどのようにマージされるかについて少し曖昧ですか?エクスプレスルートなどではなく、Angularルートをプルアップしたいのですが、githubのangular-express-seedの例は問題ないように見えますが、それでもYeomanをプロジェクトに統合したいと思います。

任意の提案をいただければ幸いです。

4

6 に答える 6

23

Yeoman + Expressjs には、次の構造をお勧めします。

mkdir app
cd app
yeoman angular
express .

したがって、ディレクトリ ツリーは次のようになります。

.
├── app
│   ├── 404.html
│   ├── favicon.ico
│   ├── index.html
│   ├── robots.txt
│   ├── scripts
│   │   ├── controllers
│   │   │   └── main.js
│   │   ├── vendor
│   │   │   ├── angular.js
│   │   │   ├── angular.min.js
│   │   │   ├── es5-shim.min.js
│   │   │   └── json3.min.js
│   │   └── yeoman-test.js
│   ├── styles
│   │   └── main.css
│   └── views
│       └── main.html
├── app.js
├── Gruntfile.js
├── package.json
├── public
│   ├── images
│   ├── javascripts
│   └── stylesheets
│       └── style.css
├── routes
│   ├── index.js
│   └── user.js
├── test
│   ├── lib
│   │   └── angular-mocks.js
│   └── spec
│       └── controllers
│           └── main.js
├── testacular.conf.js
└── views
    ├── index.jade
    └── layout.jade

冗長になったpublicディレクトリを削除できます (代わりにそこからサービスを提供しappます)。

rm -rf public

ではapp.js、静的ファイルを提供するディレクトリを変更する必要があります。この行を変更します。

app.use(express.static(path.join(__dirname, 'public')));

これに:

app.use(express.static(path.join(__dirname, 'app')));

そして、それはそれについてあるはずです。views/index.jade1 つはに、もう1 つは に、 2 つの「インデックス」ファイルがあるという点で注意が必要ですapp/index.htmlapp/index.html現在の yeoman を削除すると、 のルートが削除され、app/index.jadeを編集するようにアドバイスすることをお勧めしindex.htmlます。

お役に立てれば!

于 2013-01-01T16:31:16.047 に答える
8

これは別の少し異なる設定です

yo angular

Gruntfile.js を更新して、構成を「app」から「public」に変更します。

それからする

express .

app.js を開き、この app.get('/', routes.index); のようなルート マッピングがないことを確認します。これは、ノード サーバーが実際に index.html を提供するためです。これは、「grunt サーバー」の実行時に読み込まれるファイルと同じです。

次に、パブリック ディレクトリを削除してから、アプリ ディレクトリをパブリックに移動します。

rm -rf public
mv app public
于 2013-04-25T14:06:57.090 に答える
0

これは、他の人が以前に提案した手順をまとめたものですが、番号付きの手順でまとめてあります。これはバージョンに基づいています: Yeoman 1.0.4 & Express 3.3.8。

1) プロジェクト ディレクトリを作成し、そこに cd します。

2) 角度をインストールします。

yo angular

(su としてログインしていない場合は、次の 2 行を実行する必要があります)

bower install
sudo npm install

3) package.json の名前を package_yo.json に変更します (そのため、package.json の Express バージョンによって上書きされません)。

4) Express Express -c less -Hs をインストールします。(またはあなたが望む他の急行オプション)

sudo npm install

5) Express の public ディレクトリを削除し、Express の app.js のパスの「public」を「app」に変更します: app.use(require('less-middleware')({ src: _ dirname + '/app' }) ); app.use(express.static(path.join( _dirname, 'アプリ')));

6) Express のデフォルト ルートを削除します ( app.get('/', routes.index); ) (これで、express は angular の /app フォルダーで指定されたルートを代わりに使用します)

7) サーバーを起動します npm start

(次に、Yeoman のウェルカム ページが localhost:3000/ に表示されるはずです)。

于 2013-09-20T02:28:00.417 に答える