fish,前端框架。
安装命令
$ npm i -g @ngweb/fish-cli –registry http://registry.npm.ztesoft.com
fish new或n <project-name>
创建项目
fish config或c
在当前目录下,创建fish.config.js文件
fish serve或s [-p port/--port] [-w / --watch]
启动服务,-p/–port设置启动端口号,-w/–watch设置是否热部署(实时编译,自动刷新),一般适用于fish-cli初始化的项目(标准目录),同时生成sourcemaps。
fish generate module <module-name>
创建模块,支持缩写 fish g module <module-name>
,这里的 module-name
可以是相对路径
fish generate view <file-name>
在当前目录下创建文件/文件夹,支持缩写 fish g view <file-name>
,这里的 file-name
可以是相对路径
fish update [version]
更新目录fish-desktop版本。命令会自动找到目录下第一个fish-desktop所在目录,进行覆盖更新。可指定版本号,不指定则更新至最新版本
fish addon <addon-name>
添加 fish-desktop
提供的第三方组件
读取项目根目录下.eslintrc文件,运行eslint,检测js规范
fish build
编译、压缩、autoprefix样式文件,输出到styles文件夹里,并将fontAweSome字体拷贝至styles,可在fish.config.js里配置编译文件和编译方式
fish new myapp
新建一个fish项目
项目结构为
fish serve -w
编译运行,进入localhost:8088
即可见到fish项目原始页面
index.html为入口
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="renderer" content="webkit">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<title>myapp</title>
<link href="image/favicon.ico" type="image/x-icon" rel="shortcut icon">
<link rel="stylesheet" href="frm/fish-desktop/css/fish-desktop-default.css">
<link rel="stylesheet" href="styles/css/myapp-proj-all.css">
<!--[if lt IE 9]>
<script type="text/javascript" src="frm/fish-desktop/libs/bootstrap/respond.js"></script>
<![endif]-->
</head>
<body>
<script type="text/javascript" src="frm/fish-desktop/js/fish-desktop-all.js"></script>
<script type="text/javascript" src="frm/fish-desktop/js/fish-desktop-require.js" data-main="main"></script>
</body>
</html>
加载到data-main时会读取main.js文件,在main.js中
fish.View.configure({manage: true});
require(['modules/main/views/IndexView'], function(IndexView){
new IndexView().render();
})
加载IndexView.js文件
在modules模块目录下
按照路径找到IndexView.js文件
define([
'hbs!modules/main/templates/IndexView.html',
'i18n!modules/main/i18n/IndexView.i18n'
],function(tpl, i18n) {
var me = null;
return fish.View.extend({
el:'body',
template: tpl,
i18nData: fish.extend({}, i18n), // i18nData: fish.extend({}, i18n, commonI18n),
//提供模板数据
serialize: function () {
return this.i18nData;
},
//视图事件定义
events:{},
//一些初始化设置 (不能进行dom操作)
initialize: function() {
me = this;
},
//视图渲染完毕处理函数
afterRender: function() {
},
// 视图被删除时候做的事情
cleanup: function () {
me = null;
}
});
});
指向templates/IndexView.html
找到IndexView.html
<p>Welcome to fish...</p>