Saya mengalami kesulitan mendapatkan org-babel untuk mengevaluasi blok kode ini
emacs v24.5
node v5.0.0
babel-node v.6.6.5
# + BEGIN_SRC js: cmd "babel-node" biarkan arr = [1, 2]; biarkan [x, y] = arr; console.log (x); console.log (y); # + END_SRC
Outputnya terlihat seperti ini
/ tmp / babel-3700Vaq / js-script-37003RN: 2
biarkan arr = [1, 2]; ^^^ SyntaxError: Deklarasi blok-lingkup (biarkan, konst, fungsi, kelas) belum didukung di luar mode ketat di exports.runInThisContext (vm.js: 53: 16) di Module._compile (module.js: 404: 25) di loader (/usr/local/lib/node_modules/babel-cli/node_modules/babel-register/lib/node.js:126#) di Object.require.extensions. (fungsi anonim) [sebagai .js] (/usr/local/lib/node_modules/babel-cli/node_modules/babel-register/lib/node.js:136:7) di Module.load (module.js: 356: 32) di Function.Module._load (module.js: 311: 12) di Function.Module.runMain (module.js: 457: 10) di /usr/local/lib/node_modules/babel-cli/lib/_babel-node.js:161:27 di Object. (/usr/local/lib/node_modules/babel-cli/lib/_babel-node.js:162:7) di Module._compile (module.js: 425: 26) *
Tapi blok sumber ini tampaknya baik
# + BEGIN_SRC js: cmd "babel-node" angka const = [10,20,30,50]; const multiplyBy10 = numbers.map (a => a * 10); console.log (multiplyBy10); # + END_SRC # + HASIL: | 100 | 200 | 300 | 500 |
Sunting: Menambahkan fungsi pelaksana mandiri dengan "gunakan ketat"
# + BEGIN_SRC js: cmd "babel-node" (function xy () { "gunakan ketat"; biarkan arr = [1, 2]; biarkan [x, y] = arr; console.log (x); console.log (y); }) () # + END_SRC # + HASIL:
Outputnya terlihat seperti ini
/ tmp / babel-13529OHt / js-script-13529MVq: 6 biarkan [x, y] = arr; ^ SyntaxError: Token yang tidak terduga [ di exports.runInThisContext (vm.js: 53: 16) di Module._compile (module.js: 404: 25) di loader (/usr/local/lib/node_modules/babel-cli/node_modules/babel-register/lib/node.js:126#) di Object.require.extensions. (fungsi anonim) [sebagai .js] (/usr/local/lib/node_modules/babel-cli/node_modules/babel-register/lib/node.js:136:7) di Module.load (module.js: 356: 32) di Function.Module._load (module.js: 311: 12) di Function.Module.runMain (module.js: 457: 10) di /usr/local/lib/node_modules/babel-cli/lib/_babel-node.js:161:27 di Object. (/usr/local/lib/node_modules/babel-cli/lib/_babel-node.js:162:7) di Module._compile (module.js: 425: 26)
Sunting: Berkat @ebpa saya berhasil menyelesaikannya
npm install -g babel-preset-es2015
Ini adalah output yang saya dapatkan setelah mengevaluasi blok sumber default, yang tidak memiliki fungsi wrapper mengeksekusi sendiri.
/usr/local/lib/node_modules/babel-cli/node_modules/babel-core/lib/transformation/file/options/option-manager.js:372 throw new Error ("Tidak dapat menemukan preset" + JSON.stringify (val) + "relatif ke direktori" + JSON.stringify (dirname)); ^ Kesalahan: Tidak dapat menemukan preset "es2015" relatif terhadap direktori "/ tmp / babel-270346ez" di /usr/local/lib/node_modules/babel-cli/node_modules/babel-core/lib/transformation/file/options/option-manager.js:372:17 di Array.map (asli) di OptionManager.resolvePresets (/usr/local/lib/node_modules/babel-cli/node_modules/babel-core/lib/transformation/file/options/option-manager.js:364:20) di OptionManager.mergePresets (/usr/local/lib/node_modules/babel-cli/node_modules/babel-core/lib/transformation/file/options/option-manager.js:348:10) di OptionManager.mergeOptions (/usr/local/lib/node_modules/babel-cli/node_modules/babel-core/lib/transformation/file/options/option-manager.js:307:14) di OptionManager.init (/usr/local/lib/node_modules/babel-cli/node_modules/babel-core/lib/transformation/file/options/option-manager.js:465:10) di compile (/usr/local/lib/node_modules/babel-cli/node_modules/babel-register/lib/node.js:81:45) di loader (/usr/local/lib/node_modules/babel-cli/node_modules/babel-register/lib/node.js:126:14) di Object.require.extensions. (fungsi anonim) [sebagai .js] (/usr/local/lib/node_modules/babel-cli/node_modules/babel-register/lib/node.js:136:7) di Module.load (module.js: 356: 32)
Sunting: Jalankan terminal dan jalankan babel-node
> butuhkan ('babel-preset-es2015');
Keluaran
Kesalahan: Tidak dapat menemukan modul 'babel-preset-es2015' di Function.Module._resolveFilename (module.js: 337: 15) di Function.Module._load (module.js: 287: 25) di Module.require (module.js: 366: 17) di butuhkan (module.js: 385: 17) di repl: 1: 1 di Object.exports.runInThisContext (vm.js: 54: 17) di _eval (/home/johnwind/.nvm/versions/node/v5.0.0/lib/node_modules/babel-cli/lib/_babel-node.js:102:26) di REPLServer.replEval (/home/johnwind/.nvm/versions/node/v5.0.0/lib/node_modules/babel-cli/lib/_babel-node.js:187:14) di terikat (domain.js: 280: 14) di REPLServer.runBound [as eval] (domain.js: 293: 12)
Sunting: Tindak lanjut untuk menjalankan dan menjalankannya
Sunting: Posting ini memberi saya petunjuk untuk bagian puzzle ini
https://phabricator.babeljs.io/T6723
http://discuss.babeljs.io/t/error-parsing-jsx-with-global-installation-babel-preset-react/59/6
Sunting: Akhirnya berhasil dengan menginstal salinan lokal
$ mkdir local_babel $ cd local_babel $ npm init install $ npm --save-dev babel-cli $ npm install --save-dev babel-core $ npm install --save-dev babel-preset-es2015 $ npm install --save-dev babel-preset-stage-0 $ npm install --save-dev babel-preset-stage-1 $ npm install --save-dev babel-preset-stage-2 $ npm install --save-dev babel-preset-stage-3
menciptakan softlink untuk babel-node
$ cd / usr / local / bin $ ln -s ~ / local_babel / node_modules / babel-cli / bin / babel-node.js org-babel-node
.zshrc
export npm_config_prefix = $ HOME / .node_modules export PATH = $ PATH: $ HOME / .node_modules / bin
Menambahkan ini ke init.el saya
(setenv "NODE_PATH" (concat "/ home / johnwind / local_babel / node_modules" ":" (getenv "NODE_PATH") ) )
keluaran
# + BEGIN_SRC js: cmd "org-babel-node --setets es2015" biarkan arr = [1, 2]; biarkan [x, y] = arr; console.log (x); console.log (y); # + END_SRC # + HASIL: : 1 : 2 : tidak terdefinisi
Untuk saat ini saya memiliki salinan lokal dari babel-cli, babel-core, babel-preset-es2015. Yang masih belum bisa membungkus kepalaku karena ini seperti pemborosan sumber daya.
Tapi itu berhasil.
sumber
"strict"
di baris pertama kode sumber Anda? Inilah yang tampaknya menyarankan kesalahan."use strict"
tidak berarti"strict"
, coba itu."use strict";
di awal.Jawaban:
Ini adalah masalah dengan transisi Babel 6 untuk menggunakan plugin secara eksklusif. Anda perlu menginstal plugin preset es2015:
dan juga membutuhkannya dalam perintah doa:
sumber
require ('babel-preset-es2015');
untuk melihat bahwa skrip itu diinstal dan dapat diaksesbabel-preset-es2015
berhasil diinstal secara global, Anda mungkin memiliki masalah denganNODE_PATH
. Sejauh .babelrcbabel-node --presets es2015
melakukan hal yang sama seperti{ "presets": ["es2015"] }
pada .babelrc Anda, maka .babelrc tidak sepenuhnya diperlukan. .babelrc pasti akan lebih disukai, tetapi untuk beberapa alasan, babel-node tidak pernah mempertimbangkan ~ / .babelrc di sistem saya.