ng2英雄指南相关问题
本文首发简书 http://www.jianshu.com/p/9bd75adaed6f,欢迎转载,但请注明转载链接,谢谢! 背景Angular2正式版发布已经一段时间了,之前用过Angular1,对其中的双向绑定,自定义指令等印象深刻。 入门参考 英文官网: angular.io,小心有墙; 中文官网: angular.cn 开发环境OS: window10node: v6.8.0npm: v3.10.8git version 2.9.0.windows.1问题 1 如何分开ts,js文件在操作 【英雄指南】过程中,随着编写的文件越来越多,以及编译ts之后的有js,js.map文件,把app文件夹塞的满满的。所以就寻找解决方法。 解决其中解决方法 2个步骤 问题2 如何让ng2找到相关的html,css文件针对ts编译后生成js,js.map文件放在不同目录下的问题解决了,但是随着你 实践【英雄指南】发现有很多Component独立出来的css, html模板文件。 dist/***.css html文件
很显然,css,html是写在app/ 因为修改了tsconfig.json 现在js文件都是在dist目录,没有将css,html及时copy到dist/ 解决 1 不推荐使用使用绝对路径, 以其中的 @Component({
selector: 'my-dashboard',templateUrl: 'dashboard.component.html',styleUrls: ['dashboard.component.css']
})
如果您修改了问题1, 那么对应的也需要修改每个Component中所涉及的 templateUrl 以及styleUrls 中的路径,更改为全路径。 @Component({
selector: 'my-dashboard',templateUrl: '/app/dashboard.component.html',styleUrls: ['/app/dashboard.component.css']
})
针对找不到css文件,还需要在index.html中添加 css文件link。 <link rel="stylesheet" href="app/dashboard.component.css">
完成后,发现【英雄指南】可以正常运行了。 解决 2 手动拷贝css,html到dist目录该方法纯手工操作,无毒,副作用是,你要挨个寻找,然后ctrl + C, ctrl+V 解决 3 package.json中配置参看stack 有人提到使用 {
...
"scripts": {
"start": "npm run cleandist && npm run moveassets && tsc && concurrently "tsc -w" "lite-server" "npm run watchassets" ",...
"cleandist": "rm -rf dist/*","moveassets": "rsync -a --include='*.css' --include='*.html' --include='*/' --exclude='*' ./app/ ./dist/","watchassets": "onchange 'app/**/*.css' 'app/**/*.html' -e 'dist/*' -v -- rsync -a --include='*.css' --include='*.html' --include='*/' --exclude='*' --delete ./app/ ./dist/"
},...
"devDependencies": {
...
"onchange":"^3.0.2"
}}
注意, 注意,注意,这里有坑!!! 老外的估计是Linux 或者 Mac环境,所以他们可以这么写,但是一开始忽略的了我 window + gitBash开发环境。而且一直使用git cmd来执行 要强调本人的解决方法是在 window10 + gitBash中可以实现, 在win cmd 下,一定行不通。 step1 安装rsyncrsync可以理解为就是同步文件,牛逼的地方是可以远程, 比如, 你使用window开发,然后一旦有修改,就同步到remote服务器那边。本身是针对linux环境,也有window平台的压缩包。 cwRsync_5.5.0_x86_Free.zip
step2 修改package.json... ...
"scripts": {
"start": "npm run cleandist && npm run moveassets && tsc && concurrently "tsc -w" "lite-server" ","lite": "lite-server","postinstall": "typings install","tsc": "tsc","tsc:w": "tsc -w","typings": "typings","cleandist": "rm -rf dist/*","moveassets": "rsync -a --include='*.css' --include='*.html' --include='*/' --exclude='*' app/ dist/"
},... ...
其中, git Bash执行过程,如下: 问题3 能否自动copy改动的html,css文件到dist/本以为完成上述的step1, step2 万事大吉了,可惜不是的,而且这问题现在阶段也没有解决。 问题描述开发过程中使用 "moveassets": "rsync -a --include='*.css' --include='*.html' --include='*/' --exclude='*' app/ dist/"
按照stack上的说法,再添加一个 ... ...
"start": "npm run cleandist && npm run moveassets && tsc && concurrently "tsc -w" "lite-server" "npm run watchassets" ",... ...
"watchassets": "onchange 'app/**/*.css' 'app/**/*.html' -e 'dist/*' -v -- rsync -a --include='*.css' --include='*.html' --include='*/' --exclude='*' --delete app/ dist/"
其中的 解决 1 每次修改后及时npm start该方法不可取, 解决 2 sh脚本拷贝使用sh脚本,非常不愿意使用,这样显得之前的努力都白费了,之前就可以使用cp 命令直接拷贝到dist/中。 不知道,那位有更好的办法解决这个问题?? 知道的给个方向 ,感谢! 代码github (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |