ExpressJS里面的Yeoman

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",并且生成了package.json.在运行express init之前,将其重命名为"package_yo.json",以便表达式init不会覆盖它.运行express init,将package.json中的express和jade依赖项复制到package_yo.json,删除package.json,并将package_yo.json重命名为package.json.随着自耕选被分成哟,凉亭和咕噜声,修改构建过程也更容易,无论你想做什么 - 来自你的Gruntfile.js结构非常好. (4认同)

ski*_*ipy 8

这是另一个略有不同的设置

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)