0
如果我有兩個文件,我們姑且稱之爲A.js和B.js:如何讓Babel需要Babel編譯的文件?
import B from './B/B.js';
和B.js進口:
/src/A.js
/src/B/B.js
A.js通過ES6模塊語法使用B.js其他的東西,如:
import http from 'http';
我使用通天模塊語法轉換require
(CommonJS的)語法,我可以做成功運行:
node_modules/babel-cli/bin/babel.js src > compiled.js
然而,有一個問題:當我嘗試運行結果compiled.js
我得到:
/src/b/B.js:1
(function (exports, require, module, __filename, __dirname) { import http from 'http';
SyntaxError: Unexpected token import
是來自compiled.js
點到該行的堆棧跟蹤的一部分:
var _B = require('./src/b/B')
儘管導致問題的實際導入來自B.js:
import http from 'http';
看起來像原始的B.js是必需的,因爲在compiled.js中的B.js代碼的副本沒有import
,但我不明白爲什麼該版本沒有被使用。
任何幫助,將不勝感激。
您通常會轉換整個目錄,以便文件之間的相對路徑繼續有效。爲什麼要單獨編譯文件並重命名它們? –
因爲我是一個習慣於Webpack的虛擬人,並且以前從未手動編譯過Babel。我會嘗試在我的目錄上運行它,謝謝! – machineghost
這沒有奏效。它將A.js中的'import'轉換爲'require',但將B.js作爲單獨的文件(帶有導入)。我曾希望它會把A.js和B.js都編譯成compiled.js,但沒有這樣的運氣。 – machineghost