Tôi gặp khó khăn khi lấy org-babel để đánh giá khối mã này với
nút emacs v24.5 v5.0.0
babel-nút v.6.6.5
# + BEGIN_SRC js: cmd "nút babel" đặt mảng = [1, 2]; let [x, y] = mảng; console.log (x); console.log (y); # + END_SRC
Đầu ra trông như thế này
/ tmp / babel-3700Vaq / js-script-37003RN: 2
đặt mảng = [1, 2]; ^ ^ Cú pháp: Khai báo phạm vi khối (let, const, function, class) chưa được hỗ trợ ngoài chế độ nghiêm ngặt tại export.runIn ThisContext (vm.js: 53: 16) tại Module._compile (module.js: 404: 25) tại trình tải (/usr/local/lib/node_modules/babel-cli/node_modules/babel-register/lib/node.js:126 tại Object.require.extensions. (hàm ẩn danh) [dưới dạng tại Module.load (module.js: 356: 32) tại Function.Module._load (module.js: 311: 12) tại Function.Module.runMain (module.js: 457: 10) tại /usr/local/lib/node_modules/babel-cli/lib/_babel-node.js:161:27 tại đối tượng (/usr/local/lib/node_modules/babel-cli/lib/_babel-node.js:162:7) tại Module._compile (module.js: 425: 26) *
Nhưng khối nguồn này có vẻ ổn
# + BEGIN_SRC js: cmd "nút babel" số const = [10,20,30,50]; const MultiplyBy10 = Numbers.map (a => a * 10); console.log (MultiplyBy10); # + END_SRC # + KẾT QUẢ: | 100 | 200 | 300 | 500 |
Chỉnh sửa: Đã thêm chức năng tự thực thi với "sử dụng nghiêm ngặt"
# + BEGIN_SRC js: cmd "nút babel" (hàm xy () { "Sử dụng nghiêm ngặt"; đặt mảng = [1, 2]; let [x, y] = mảng; console.log (x); console.log (y); }) () # + END_SRC # + KẾT QUẢ:
Đầu ra trông như thế này
/ tmp / babel-13529OHt / js-script-13529MVq: 6 let [x, y] = mảng; ^ Cú pháp: Mã thông báo bất ngờ [ tại export.runIn ThisContext (vm.js: 53: 16) tại Module._compile (module.js: 404: 25) tại trình tải (/usr/local/lib/node_modules/babel-cli/node_modules/babel-register/lib/node.js:126 tại Object.require.extensions. (hàm ẩn danh) [dưới dạng tại Module.load (module.js: 356: 32) tại Function.Module._load (module.js: 311: 12) tại Function.Module.runMain (module.js: 457: 10) tại /usr/local/lib/node_modules/babel-cli/lib/_babel-node.js:161:27 tại đối tượng (/usr/local/lib/node_modules/babel-cli/lib/_babel-node.js:162:7) tại Module._compile (module.js: 425: 26)
Chỉnh sửa: Nhờ @ebpa tôi đã quản lý để giải quyết nó với
cài đặt npm -g babel-preset-es2015
Đây là đầu ra tôi nhận được sau khi đánh giá khối nguồn mặc định, không có trình bao bọc chức năng tự thực thi.
/usr/local/lib/node_modules/babel-cli/node_modules/babel-core/lib/transifying/file/options/option-manager.js:372 đưa ra Lỗi mới ("Không thể tìm thấy cài đặt trước" + JSON.opesify (val) + "liên quan đến thư mục" + JSON.opesify (dirname)); ^ Lỗi: Không thể tìm thấy cài đặt trước "es2015" liên quan đến thư mục "/ tmp / babel-270346ez" tại /usr/local/lib/node_modules/babel-cli/node_modules/babel-core/lib/transifying/file/options/option-manager.js:372:17 tại Array.map (bản địa) tại OptionManager.resolvePresets (/usr/local/lib/node_modules/babel-cli/node_modules/babel-core/lib/transifying/file/options/option-manager.js:364:20) tại OptionManager.mergePresets (/usr/local/lib/node_modules/babel-cli/node_modules/babel-core/lib/transifying/file/options/option-manager.js:348:10) tại OptionManager.mergeOptions (/usr/local/lib/node_modules/babel-cli/node_modules/babel-core/lib/transifying/file/options/option-manager.js:307:14) tại OptionManager.init (/usr/local/lib/node_modules/babel-cli/node_modules/babel-core/lib/transifying/file/options/option-manager.js:465:10) tại biên dịch (/usr/local/lib/node_modules/babel-cli/node_modules/babel-register/lib/node.js:81:45) tại trình tải (/usr/local/lib/node_modules/babel-cli/node_modules/babel-register/lib/node.js:126:14) tại Object.require.extensions. (hàm ẩn danh) [dưới dạng tại Module.load (module.js: 356: 32)
Chỉnh sửa: Kích hoạt thiết bị đầu cuối và chạy nút babel
> yêu cầu ('babel-preset-es2015');
Đầu ra
Lỗi: Không thể tìm thấy mô-đun 'babel-preset-es2015' tại Function.Module._resolveFilename (module.js: 337: 15) tại Function.Module._load (module.js: 287: 25) tại Module.require (module.js: 366: 17) theo yêu cầu (module.js: 385: 17) tại thay thế: 1: 1 tại Object.exports.runIn ThisContext (vm.js: 54: 17) tại _eval (/home/johnwind/.nvm/versions/node/v5.0.0/lib/node_modules/babel-cli/lib/_babel-node.js:102:26) tại REPLServer.replEval (/home/johnwind/.nvm/versions/node/v5.0.0/lib/node_modules/babel-cli/lib/_babel-node.js:187:14) tại ràng buộc (domain.js: 280: 14) tại REPLServer.runBound [as eval] (domain.js: 293: 12)
Chỉnh sửa: Theo dõi để có được nó và chạy
Chỉnh sửa: Bài đăng này đã cho tôi một số manh mối cho mảnh ghép này
https://phovenator.babeljs.io/T6723
http://discuss.babeljs.io/t/error-parsing-jsx-with-global-installation-babel-preset-react/59/6
Chỉnh sửa: Cuối cùng, nó đã hoạt động bằng cách cài đặt một bản sao cục bộ
$ mkdir local_babel $ cd local_babel $ npm init $ npm cài đặt --save-dev babel-cli $ npm cài đặt --save-dev babel-core $ npm cài đặt --save-dev babel-preset-es2015 $ npm cài đặt --save-dev babel-preset-giai đoạn-0 $ npm cài đặt --save-dev babel-preset-giai đoạn-1 $ npm cài đặt --save-dev babel-preset-giai đoạn-2 $ npm cài đặt --save-dev babel-preset-giai đoạn-3
đã tạo một liên kết mềm cho nút babel
$ cd / usr / local / bin $ ln -s ~ / local_babel / node_modules / babel-cli / bin / babel-node.js org-babel-node
.zshrc
xuất npm_config_prefix = $ HOME / .node_modules xuất PATH = $ PATH: $ HOME / .node_modules / bin
Đã thêm cái này vào init.el của tôi
(setenv "NODE_PATH" (concat "/ home / johnwind / local_babel / node_modules" ":" (getenv "NODE_PATH") ) )
đầu ra
# + BEGIN_SRC js: cmd "org-babel-node --presets es2015" đặt mảng = [1, 2]; let [x, y] = mảng; console.log (x); console.log (y); # + END_SRC # + KẾT QUẢ: : 1 : 2 : chưa xác định
Để bây giờ tôi có cả bản sao địa phương và toàn cầu của babel-cli, babel-core, babel-preset-es2015. Điều vẫn không thể che giấu đầu tôi vì điều này thật lãng phí tài nguyên.
Nhưng nó đã có tác dụng.
"use strict"
không "strict"
, hãy thử nó.
"use strict";
vào lúc bắt đầu.
"strict"
vào dòng đầu tiên của mã nguồn chưa? Đây là những gì lỗi dường như đề nghị.