解决问题SyntaxError: Unexpected token import
ES6語(yǔ)法的模塊導(dǎo)入導(dǎo)出(import/export)功能,我們?cè)谑褂盟臅r(shí)候,可能會(huì)報(bào)錯(cuò):
SyntaxError: Unexpected token import 語(yǔ)法錯(cuò)誤:此處不應(yīng)該出現(xiàn)import我遇到的情況是import語(yǔ)法不識(shí)別導(dǎo)致的。在這里,有兩種方法可以解決。
1: 使用node的v8及之后的版本
因?yàn)?#xff0c;node需要v8.x之后的版本才支持ECMAScript Modules 和 imort 語(yǔ)法
目前,node穩(wěn)定版本是v8.11.2
可以使用nvm來(lái)安裝管理查看多個(gè)node版本。
可以使用--experimental-modules實(shí)驗(yàn)?zāi)K標(biāo)志來(lái)啟用加載ECMAScript Modules的特性。
而且作為ES模塊加載的文件名,必須以.mjs后綴結(jié)尾
此種方法,在輸出的時(shí)候會(huì)提示:
(node:16208) ExperimentalWarning: The ESM module loader is experimental.表示是個(gè)實(shí)驗(yàn)?zāi)K,到時(shí)候可能會(huì)修改。
例子:https://github.com/weiqinl/demo/tree/master/01-es6-import
2: 使用babel,通用方法
瀏覽器直接支持import程度比較低,所以需要babel來(lái)將import轉(zhuǎn)換為es5語(yǔ)法。
安裝
通過(guò) npm:
npm install --save-dev babel-preset-env babel-cli或者通過(guò) yarn:
yarn add babel-preset-env --dev使用
沒(méi)有選項(xiàng)的默認(rèn)行為將運(yùn)行所有transform(與 babel-preset-latest 相同)。
新建一個(gè).babelrc文件,并在里面寫入:
執(zhí)行
babel-node index.js我的例子: https://github.com/weiqinl/demo/tree/master/01-es6-import
babel官方給出的一個(gè)例子:https://github.com/babel/example-node-server
2018-10-18 更新
無(wú)法識(shí)別import,換一種想法,也可以說(shuō)是低版本瀏覽器不支持?,F(xiàn)在babel已經(jīng)更新到版本7了,我們用最新的babel來(lái)實(shí)現(xiàn)。
該問(wèn)題的babel7的解決方案:https://www.cnblogs.com/weiqinl/p/9773048.html
參考: https://github.com/nodejs/help/issues/53
轉(zhuǎn)載于:https://www.cnblogs.com/weiqinl/p/9152219.html
總結(jié)
以上是生活随笔為你收集整理的解决问题SyntaxError: Unexpected token import的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Python 离线 安装requests
- 下一篇: python—内置函数-字符串,eval