1. 程式人生 > >export報錯SyntaxError: Unexpected token export

export報錯SyntaxError: Unexpected token export

情景重現

a.js

export let test = function () {
  console.log('1');
}

b.js

let a= require ('./a');
a.test();

執行node b,即出現如下報錯:

export default {
^^^^^^

SyntaxError: Unexpected token export

解決方法

a.js改為如下:

exports.test = function () {
  console.log('1');
}

根本原因

Node和瀏覽器端所支援的模組規範不同。

條目 Node 瀏覽器
模組規範 CommonJS ES6
匯出 * modules.exports; exports export; export default
引入 require import;require
1. 關於exports和module.exports
  • 在一個node執行一個檔案時,會給這個檔案內生成一個 exports和module物件,
    而module有一個exports屬性。
  • exports = module.exports = {};
2. 關於 export 和export default
  • export與export default均可用於匯出常量、函式、檔案、模組等
  • 在一個檔案或模組中,export、import可以有多個,export default僅有一個
  • 通過export方式匯出,在匯入時要加{ },export default則不需要
  • export能直接匯出變量表達式,export default不行。

參考文章: