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.
"use strict"
tidak berarti "strict"
, coba itu.
"use strict";
di awal.
"strict"
di baris pertama kode sumber Anda? Inilah yang tampaknya menyarankan kesalahan.