use standalone build

This commit is contained in:
Evan You 2013-08-19 17:22:43 -04:00
parent ea792ba6bb
commit d8644b827c
8 changed files with 23 additions and 31 deletions

View File

@ -9,12 +9,14 @@ module.exports = function( grunt ) {
dev: true, dev: true,
sourceUrls: true, sourceUrls: true,
styles: false, styles: false,
verbose: true verbose: true,
standalone: true
}, },
build: { build: {
output: './dist/', output: './dist/',
name: 'seed', name: 'seed',
styles: false styles: false,
standalone: true
} }
}, },
@ -67,17 +69,7 @@ module.exports = function( grunt ) {
grunt.loadNpmTasks( 'grunt-component-build' ) grunt.loadNpmTasks( 'grunt-component-build' )
grunt.loadNpmTasks( 'grunt-mocha' ) grunt.loadNpmTasks( 'grunt-mocha' )
grunt.registerTask( 'test', ['mocha'] ) grunt.registerTask( 'test', ['mocha'] )
grunt.registerTask( 'default', ['jshint', 'component_build:build', 'concat:dev'] ) grunt.registerTask( 'default', ['jshint', 'component_build:build'] )
grunt.registerTask( 'concat', function (version) {
var fs = require('fs'),
intro = fs.readFileSync('wrappers/intro.js'),
outro = fs.readFileSync('wrappers/outro.js', 'utf-8'),
main = fs.readFileSync('dist/seed.js')
outro = new Buffer(outro.replace('{{version}}', "'" + version + "'"))
var all = Buffer.concat([intro, main, outro])
fs.writeFileSync('dist/seed.js', all)
})
grunt.registerTask( 'version', function (version) { grunt.registerTask( 'version', function (version) {
var fs = require('fs') var fs = require('fs')
@ -93,7 +85,6 @@ module.exports = function( grunt ) {
grunt.task.run([ grunt.task.run([
'jshint', 'jshint',
'component_build:build', 'component_build:build',
'concat:' + version,
//'test', //'test',
'uglify', 'uglify',
'version:' + version 'version:' + version

View File

@ -12,8 +12,9 @@
<button sd-on="click:one">one</button> <button sd-on="click:one">one</button>
<button sd-on="click:two">two</button> <button sd-on="click:two">two</button>
<button sd-on="click:three">three</button> <button sd-on="click:three">three</button>
<p><input sd-value="msg"></p>
<script> <script>
Seed.config({debug: true}) seed.config({debug: true})
var data1 = { var data1 = {
c: 0, c: 0,
b: { b: {
@ -26,7 +27,7 @@
c: 'one' c: 'one'
} }
} }
var Demo = Seed.ViewModel.extend({ var Demo = seed.ViewModel.extend({
init: function () { init: function () {
this.msg = 'Yoyoyo' this.msg = 'Yoyoyo'
this.a = data1 this.a = data1

View File

@ -57,11 +57,9 @@
</div> </div>
<script> <script>
Seed.config({ seed.config({ debug: true })
debug: true
})
var Man = Seed.ViewModel.extend({ var Man = seed.ViewModel.extend({
id: 'man', id: 'man',
init: function () { init: function () {
this.name = this.$el.dataset.name this.name = this.$el.dataset.name

View File

@ -12,8 +12,8 @@
<input type="checkbox" sd-checked="checked"> <input type="checkbox" sd-checked="checked">
<span sd-text="hello.msg | uppercase" sd-class="red:checked"></span> <span sd-text="hello.msg | uppercase" sd-class="red:checked"></span>
<script> <script>
Seed.config({ debug: true }) seed.config({ debug: true })
var demo = new Seed.ViewModel({ var demo = new seed.ViewModel({
el: 'body' el: 'body'
}) })
demo.hello = { demo.hello = {

View File

@ -10,7 +10,7 @@
<p>{{hi}}!</p> <p>{{hi}}!</p>
</div> </div>
<script> <script>
var Test = Seed.ViewModel.extend({ var Test = seed.ViewModel.extend({
template: 'todo', template: 'todo',
init: function (msg) { init: function (msg) {
this.hi = msg this.hi = msg

View File

@ -220,10 +220,13 @@ CompilerProto.createBinding = function (key) {
if (binding.root) { if (binding.root) {
// this is a root level binding. we need to define getter/setters for it. // this is a root level binding. we need to define getter/setters for it.
this.define(baseKey, binding) this.define(baseKey, binding)
} else if (!this.bindings[baseKey]) { } else {
// this is a nested value binding, but the binding for its root // TODO create placeholder objects
// has not been created yet. We better create that one too. if (!this.bindings[baseKey]) {
this.createBinding(baseKey) // this is a nested value binding, but the binding for its root
// has not been created yet. We better create that one too.
this.createBinding(baseKey)
}
} }
return binding return binding

View File

@ -44,9 +44,9 @@ methods.forEach(function (method) {
function observe (obj, path, observer) { function observe (obj, path, observer) {
if (isWatchable(obj)) { if (isWatchable(obj)) {
path = path + '.' path = path + '.'
var alreadyConverted = !!obj.__observer__ var ob, alreadyConverted = !!obj.__observer__
if (!alreadyConverted) { if (!alreadyConverted) {
var ob = new Emitter() ob = new Emitter()
defProtected(obj, '__observer__', ob) defProtected(obj, '__observer__', ob)
} }
obj.__observer__ obj.__observer__

View File

@ -1,5 +1,4 @@
var utils = require('./utils'), var Compiler = require('./compiler')
Compiler = require('./compiler')
/* /*
* ViewModel exposed to the user that holds data, * ViewModel exposed to the user that holds data,