से डी 3 चलाने के लिए चाहता हूं मैं कमांड लाइन से कुछ डी 3 कोड निष्पादित करना चाहता हूं। शुरू में मैं सिर्फ तरह कुछ करने की कोशिश की:मैं एक केकफाइल
task 'data', 'Build some data with d3', ->
d3 = require('lib/d3.v2')
console.log "d3 version = "+ d3.version
लेकिन यह काम नहीं किया। मुझे इस तरह की त्रुटियां मिलीं:
node.js:201
throw e; // process.nextTick error, or 'error' event on first tick
^
ReferenceError: CSSStyleDeclaration is not defined
at /Users/mydir/Documents/classes/middleclass/app/lib/d3.min.js:1:21272
at Object.<anonymous> (/Users/mydir/Documents/classes/middleclass/app/lib/d3.min.js:2:25395)
at Module._compile (module.js:432:26)
at Object..js (module.js:450:10)
at Module.load (module.js:351:31)
at Function._load (module.js:310:12)
at Module.require (module.js:357:17)
at require (module.js:368:17)
at Object.action (/Users/mydir/Documents/classes/middleclass/Cakefile:22:10)
at /usr/local/lib/node_modules/coffee-script/lib/coffee-script/cake.js:39:26
तो ... मुझे लगा कि यह अपवाद मुझे बता रहा था कि मुझे ब्राउज़र के अंदर डी 3 निष्पादित करने की आवश्यकता है। मैंने इसे दो अलग-अलग तरीकों से करने की कोशिश की। असल में हालांकि, मैंने सोचा कि अगर मैंने अभी फैंटोम को निकाल दिया है तो शायद मैं ऐसा करने में सक्षम हूं जो मैं करना चाहता था।
task 'data2', 'Build some data with d3', ->
hem = spawn 'hem', ['server']
phantom = require('phantom')
phantom.create (ph) ->
ph.createPage (page) ->
page.open 'http://localhost:9294/sandbox.html', (status) ->
page.evaluate (-> window), (window) ->
require = window.require
require('lib/d3.v2')
console.log("d3 version = "+ d3.version)
ph.exit()
hem.kill()
जब मैं यह तरीका अपनाते हैं, हालांकि, मैं हमेशा ऊपर इस तरह अपवाद हो रही अंत: यहाँ मेरी Cakefile था
TypeError: object is not a function
at Object.CALL_NON_FUNCTION (native)
at Object.<anonymous> (/Users/mydir/Documents/classes/middleclass/Cakefile:52:13)
at Object.<anonymous> (/Users/mydir/Documents/classes/middleclass/node_modules/phantom/node_modules/dnode-protocol/index.js:274:16)
at apply (/Users/mydir/Documents/classes/middleclass/node_modules/phantom/node_modules/dnode-protocol/index.js:143:17)
at EventEmitter.handle (/Users/mydir/Documents/classes/middleclass/node_modules/phantom/node_modules/dnode-protocol/index.js:120:13)
at /Users/mydir/Documents/classes/middleclass/node_modules/phantom/node_modules/dnode-protocol/index.js:81:20
at EventEmitter.<anonymous> (/Users/mydir/Documents/classes/middleclass/node_modules/phantom/node_modules/dnode/node_modules/lazy/lazy.js:62:13)
at EventEmitter.<anonymous> (/Users/mydir/Documents/classes/middleclass/node_modules/phantom/node_modules/dnode/node_modules/lazy/lazy.js:46:19)
at EventEmitter.emit (events.js:67:17)
at EventEmitter.<anonymous> (/Users/mydir/Documents/classes/middleclass/node_modules/phantom/node_modules/dnode/node_modules/lazy/lazy.js:46:39)
क्या मैं गलत कर रहा हूँ ??
धन्यवाद mbostock को मैं अगले कार्य हो गया है:
मेरे package.json:
{
"name": "app",
"version": "0.0.1",
"dependencies": {
"d3": "~2.8.0",
"jsdom": "~0.2.13"
}
}
मेरे Cakefile:
task 'd3', 'Do something with d3', ->
jsdom = require('jsdom')
jsdom.env({
html: 'public/sandbox.html'
done: (errors,window) ->
require('d3/index.js')
console.log("d3 version = "+ d3.version)
})
ऐसा लगता है कि आप आपकी समस्या हल हो लग रहा है। मुझे व्यक्तिगत रूप से एक ही त्रुटि मिली, और इसे 'निर्यात NODE_PATH =/usr/local/lib/node_modules' –