kyl*_*che 24 node.js express angularjs yeoman
我还是想尝试用Yeoman和Express运行一个例子.
我尝试了下面的工作并且工作"没问题",但是我坚持合并这些路线.(简化为可读性)
mkdir test
cd test
express
mkdir app
cd app
mkdir js
cd js
yeoman angular
Run Code Online (Sandbox Code Playgroud)
然后我在Gruntfile.js中将"output:dist"更改为"output:../../ public"
现在,两台服务器都可以自行运行(例如yeoman服务器和节点app.js).我现在也可以运行'yeoman build'来将缩小的JS输出到快递应用程序中的/ public.
我对路线如何融合有点模糊?我想/ /拉起Angular路线而不是快速路线等.github上的angular-express-seed示例看起来还不错,但我仍然希望Yeoman集成到项目中.
任何建议,将不胜感激.
btf*_*ord 23
我会为yeoman + expressjs推荐这个结构:
mkdir app
cd app
yeoman angular
express .
Run Code Online (Sandbox Code Playgroud)
所以你的目录树应该是这样的:
.
??? 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
Run Code Online (Sandbox Code Playgroud)
您可以删除现在冗余的public目录(我们将从中提供服务app):
rm -rf public
Run Code Online (Sandbox Code Playgroud)
现在app.js,您需要更改哪个dir来提供静态文件.改变这一行:
app.use(express.static(path.join(__dirname, 'public')));
Run Code Online (Sandbox Code Playgroud)
对此:
app.use(express.static(path.join(__dirname, 'app')));
Run Code Online (Sandbox Code Playgroud)
这应该是关于它的.有一个注意事项,你现在有两个"索引"文件 - 一个在views/index.jade,另一个在app/index.html.删除app/index.html当前打破yeoman,所以我的建议是摆脱路线app/index.jade,只是编辑index.html.
希望这可以帮助!
这是另一个略有不同的设置
yo angular
Run Code Online (Sandbox Code Playgroud)
更新Gruntfile.js以将配置从"app"更改为"public".
然后做
express .
Run Code Online (Sandbox Code Playgroud)
打开app.js并确保没有像这样app.get('/',routes.index)的路由映射; 这样节点服务器实际上会提供index.html,这是运行"grunt server"时加载的相同文件.
现在继续删除公共目录,然后将app目录移动到public
rm -rf public
mv app public
Run Code Online (Sandbox Code Playgroud)