我有这个要求声明
require('smoothscroll-polyfill').polyfill();
但我想把它写成es6导入语句
我试过了
import 'smoothscroll-polyfill';
和
import * as 'smoothscrollPolyfill' from 'smoothscroll-polyfill';
但是无法让它正常工作,那么导入这样的包的正确方法是什么?
答案 0 :(得分:6)
你要分两部分进行,首先是导入,然后是函数调用:
如果polyfill
本身是指定的导出和,那么在调用时this
并不关心:
import {polyfill} from 'smoothscroll-polyfill';
polyfill();
(你现在confirmed就是这种情况。)
为了完整性,在确认上述内容之前,我还列出了将来可能对其他人有用的其他可能性:
如果polyfill
是默认导出的属性(而不是其自己的命名导出),那么我们会导入{{1}中的默认值{}
}语句然后使用其属性:
import
如果import smoothScrollPolyFill from 'smoothscroll-polyfill';
const polyfill = smoothScrollPolyFill.polyfill();
部分是名为的导出而smoothScrollPolyFill
是其中的属性,那么我们会在polyfill
上使用{}
}:
import
答案 1 :(得分:3)
使用import {} from '...'
代替。
import {polyfill} from 'smoothscroll-polyfill';//ref polyfill from 'smotthscroll-polyfill'
polyfill();//ref a method,so you must call it after imported.
答案 2 :(得分:1)
假设您正在使用Babel或类似的东西来提供CommonJS模块和ES6模块之间的兼容性,语法将如下所示:
import smoothscrollPolyfill from "smoothscroll-polyfill";
smoothscrollPolyfill.polyfill();