项目地址:
http://riotjs.com/
备注:
为了简单使用了 browserify 进行构建
1. 项目结构
├── app.css
├── gulpfile.js
├── index.html
├── package.json
├── README.md
├── sample.tag
├── src
│   └── app.js
└── yarn.lock
2. 代码
a. app.css

 .demo {
font-size: 100px;
} b. gulpfile.js var gulp = require('gulp');
var browserify = require('browserify');
var riotify = require('riotify');
var source = require('vinyl-source-stream');
gulp.task('browserify', function(){
browserify({ entries: ['src/app.js'] })
.transform(require('browserify-css'),{global: true,autoInject:true})
.transform(riotify) // pass options if you need
.bundle()
.pipe(source('app.js'))
.pipe(gulp.dest('dist/'))
}); c. index.html <html>
<head>
<title>Hello Riot.</title>
</head>
<body>
<!-- place the custom tag anywhere inside the body -->
<example-tag></example-tag>
<todo></todo>
<!-- include the tag -->
<!-- <script type="riot/tag" src="sample.tag"></script> -->
<!-- include riot.js -->
<!-- <script src="https://cdn.jsdelivr.net/npm/riot@3.7/riot+compiler.min.js"></script> -->
<!-- mount the tag -->
<!-- <script>riot.mount('example-tag')</script> -->
<script src="dist/app.js"></script>
</body>
</html>
备注:注释的部分可以直接使用js 引用运行应用 d. package.json {
"name": "riotjsdemo",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"dependencies": {
"riot": "^3.8.1"
},
"scripts": {
"start": "gulp browserify && live-server",
"build": "gulp browserify"
},
"devDependencies": {
"browserify": "^14.5.0",
"browserify-css": "^0.14.0",
"gulp": "^3.9.1",
"live-server": "^1.2.0",
"riotify": "^2.0.0",
"vinyl-source-stream": "^2.0.0"
}
} e. sample.tag <example-tag>
<p class="demo" id="findMe">Do I even Exist?</p>
<todo></todo>
<script>
var options = require("./app.css");
var test1 = document.getElementById('findMe')
console.log('test1', test1) // Fails this.on('update', function(){
var test2 = document.getElementById('findMe')
console.log('test2', test2) // Succeeds, fires on every update
})
clickdemo=function(e){
console.log(e);
}
this.on('mount', function(){
var test3 = document.getElementById('findMe')
console.log(options);
console.log('test3', test3) // Succeeds, fires once (per mount)
})
</script>
</example-tag>
<todo> <!-- layout -->
<h3>{ opts.title }</h3> <ul>
<li each={ item, i in items }>{ item }</li>
</ul> <form onsubmit={ add }>
<input ref="input">
<button>Add #{ items.length + 1 }</button>
</form> <!-- style -->
<style>
h3 {
font-size: 14px;
}
</style> <!-- logic -->
<script>
this.items = [] add(e) {
e.preventDefault()
var input = this.refs.input
if(input.value!=""){
this.items.push(input.value)
input.value = ''
}
console.log(input.value);
}
</script> </todo> f. src/app.js var riot = require('riot')
var sample = require('../sample.tag')
riot.mount(sample)
3. 运行
a. 构建

yarn run build

b. 构建并运行

yarn run start
4. 参考资料
https://www.npmjs.com/package/browserify-css
https://github.com/riot/riot
https://www.npmjs.com/package/riotify
https://github.com/rongfengliang/riotjslearning.git
 
 
 
 

riotjs 简单使用&&browserify 构建的更多相关文章

  1. 基于Gulp + Browserify构建es6环境下的自动化前端项目

    随着React.Angular2.Redux等前沿的前端框架越来越流行,使用webpack.gulp等工具构建前端自动化项目也随之变得越来越重要.鉴于目前业界普遍更流行使用webpack来构建es6( ...

  2. gulp:更简单的自动化构建工具

    目前最流行的两种使用JavaScript开发的构建工具是Grunt和Gulp.为什么使用gulp?因为Gulp更简单.Grunt任务拥有大量的配置,会引用大量你实际上并不需要的对象属性,但是Gulp里 ...

  3. 简单使用Laravel-admin构建一个功能强大的后台管理

    Laravel-admin可以快速构建一个功能强大的后台,方便快速开发. 以下内容记录简单使用Laravel-admin,以及遇到小错误的解决方法. Laravel-admin 依赖以下环境 需要提前 ...

  4. Ant简单工程的构建

    1.在Ant的官方网站http://ant.apache.org/bindownload.cgi下载Ant最新版本(我下载的是apache-ant-1.8.2-bin.zip),Ant无需安装,直接解 ...

  5. EasyAR SDK在unity中的简单配置及构建一个简单场景。

    首先打开EasyAR的官方网站http://www.easyar.cn/index.html,注册登陆之后,打开首页的开发页面. 下载sdk和Unity Samples. 创建一个unity3d工程N ...

  6. 基础项目构建,引入web模块,完成一个简单的RESTful API 转载来自翟永超

    简介 在您第一次接触和学习Spring框架的时候,是否因为其繁杂的配置而退却了?在你第n次使用Spring框架的时候,是否觉得一堆反复粘贴的配置有一些厌烦?那么您就不妨来试试使用Spring Boot ...

  7. java构建简单的HTTP服务器

    使用Java技术构建Web应用时, 我们通常离不开tomcat和jetty之类的servlet容器,这些Web服务器功能强大,性能强劲,深受欢迎,是运行大型Web应用的必备神器. 虽然Java的设计初 ...

  8. Jenkins简单入门:下载-安装-配置-构建

    Jenkins简单配置流程 官网下载地址:https://jenkins.io/index.html 1.下载安装Jenkins (1)点击Download Jenkins进入下载页 (2)根据自己运 ...

  9. browserify使用手册

    简介 这篇文档用以说明如何使用browserify来构建模块化应用 browserify是一个编译工具,通过它可以在浏览器环境下像nodejs一样使用遵循commonjs规范的模块化编程. 你可以使用 ...

随机推荐

  1. java代码实现递归

    think in java 书中使用递归分析 代码如下: public class Snake implements Cloneable { private Snake next; private c ...

  2. spring mvc: log4j插件 log日志的输出

    准备: log插件:log4j <!-- log日志插件 --> <!-- https://mvnrepository.com/artifact/log4j/log4j --> ...

  3. VS2013 VC++的.cpp文件调用CUDA的.cu文件中的函数

    CUDA 8.0在函数的调用中方便的让人感动.以下是从网上学到的VC++的.cpp文件调用CUDA的.cu文件中的函数方法,和一般的VC++函数调用的方法基本没差别. 使用的CUDA版本为CUDA 8 ...

  4. nyoj——297(期望)

    GoroSort 时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 Goro has 4 arms. Goro is very strong. You don't me ...

  5. 转:Hive SQL的编译过程

    Hive是基于Hadoop的一个数据仓库系统,在各大公司都有广泛的应用.美团数据仓库也是基于Hive搭建,每天执行近万次的Hive ETL计算流程,负责每天数百GB的数据存储和分析.Hive的稳定性和 ...

  6. Mysql 建表时报错 invalid ON UPDATE clause for 'create_date' column

    这个错误是由于mysql 版本问题导致的 `create_date` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间', ...

  7. 【前端安全】 web前端安全编码(模版篇)【转】

    在web的开发的开发过程中,前端总是在处理后端打的各种变量,变量可以包含着中的各种各样的字符,如果不对这些字符进行”特殊“处理的话,轻者导 致页面不正常的显示,潜入了其他的东西,亦即页面挂了,或者弹出 ...

  8. 字符串比较,栈溢出引起的程序bug

    需求 输入密码字符串,与设定的密码“1234567”进行比较,两者相符则输出"congratulations!”,不符则输出“try again!”. 程序bug 实际运行过程中发现,输入某 ...

  9. AS3帮助手册

    http://help.adobe.com/zh_CN/FlashPlatform/reference/actionscript/3/index.html

  10. vs 2013远程调试

    1. 找到本机Remote Debugger/x64文件夹,将其拷贝到远程机器上 2.运行x64文件夹下的msvsmon.exe,将其设置为“无身份验证模式”,记住端口号,一会儿要用到 3.在vs中打 ...