我仍然想尝试使用 Yeoman 和 Express 运行示例。
我尝试了以下方法,它“正常”工作,但我在合并路线时遇到了困难。 (为了便于阅读,过度简化)
mkdir test
cd test
express
mkdir app
cd app
mkdir js
cd js
yeoman angular
然后我在 Gruntfile.js 中将“output:dist”更改为“output:../../public”
现在,两台服务器都可以自行运行(例如 yeoman 服务器和 Node app.js)。我现在也可以运行“yeoman build”,将缩小的 JS 输出到 express 应用程序中的/public。
我对路线如何合并有点模糊?我想/拉起 Angular 路线而不是 express 路线等。github 上的 angular-express-seed 示例看起来不错,但我仍然希望 Yeoman 集成到项目中。
任何建议将不胜感激。
最佳答案
我会为 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.jade
中,另一个在 app/index.html
中。删除 app/index.html
目前会破坏 yeoman,所以我的建议是摆脱 app/index.jade
的路线,只对 index 进行编辑.html
.
希望这会有所帮助!
关于node.js - ExpressJS 中的 Yeoman,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14106248/