Joe*_*oyd 2 javascript import node.js ecmascript-6
我有这个要求声明
require('smoothscroll-polyfill').polyfill();
Run Code Online (Sandbox Code Playgroud)
但我想把它写成es6 import语句
我试过了
import 'smoothscroll-polyfill';
Run Code Online (Sandbox Code Playgroud)
和
import * as 'smoothscrollPolyfill' from 'smoothscroll-polyfill';
Run Code Online (Sandbox Code Playgroud)
但是无法让它正常工作,那么导入这样的包的正确方法是什么?
你要分两部分,首先是导入,然后是函数调用:
如果polyfill
它本身是一个命名导出,它不关心什么this
时候被调用:
import {polyfill} from 'smoothscroll-polyfill';
polyfill();
Run Code Online (Sandbox Code Playgroud)
(而你现在已经确认是这种情况.)
为了完整起见,在确认上述内容之前,我还列出了将来可能对其他人有用的其他可能性:
如果polyfill
是在一个属性默认出口(而不是它自己的命名出口),那么我们导入默认(没有{}
在import
声明中),然后使用它的属性:
import smoothScrollPolyFill from 'smoothscroll-polyfill';
const polyfill = smoothScrollPolyFill.polyfill();
Run Code Online (Sandbox Code Playgroud)
如果该smoothScrollPolyFill
部件是命名导出并且polyfill
是其上的属性,那么我们将使用{}
on import
:
import {smoothScrollPolyFill} from 'smoothscroll-polyfill';
const polyfill = smoothScrollPolyFill.polyfill();
Run Code Online (Sandbox Code Playgroud)