草庐IT

ES导入导出

全部标签

javascript - Webpack、IE8 和 ES6 模块

最新版本的webpack不支持IE8。我已经尝试使用1.12.12(我认为这是支持IE8的最后一个版本),但仍然会从不可调整的Object.defineProperty中得到错误。https://github.com/webpack/webpack/issues/2085上一个支持IE8的webpack版本是什么?它曾经与ES6模块一起工作过吗?webpack.config.js:varwebpack=require("webpack");vares3ifyPlugin=require('es3ify-webpack-plugin');varproductionPlugin=newwe

javascript - Apache Cordova 混合应用程序中的 ES6 模块/导入抛出 MIME 类型错误

我正在尝试在使用ApacheCordova构建的混合移动应用程序中使用ES6模块。不幸的是,Cordova似乎在提供没有MIME类型的模块,这会在WebView中引发错误(在Chrome63和64beta中)。具体来说,部署的应用程序(使用chromeremotedebugger)抛出以下错误:Failedtoloadmodulescript:Theserverrespondedwithanon-JavaScriptMIMEtypeof"".StrictMIMEtypecheckingisenforcedformodulescriptsperHTMLspec.我使用的是标准ES6导入,

javascript - react native - 在 package.json 中使用别名进行绝对导入

我看到一些项目使用import'@someDir/something',它解决了相对导入的问题。然后我找到了这个blogpost说说这个方法。它基本上告诉您在目录中创建package.json并指定它们的别名。我在我基于expo的react-native项目中实现了它,效果很好。像这样:{"name":"@someDir"}在src/someDir/package.json中。而且我可以在任何地方导入'@someDir/something'。为什么会这样?背后发生的魔法在哪里?Webpack还是babel还是react-native本身?我看到了anissue正在讨论此功能,但我不知道

javascript - 如何使用 ES5 扩展 ES6 类?

这个问题在这里已经有了答案:Isitpossibletoinheritold-styleclassfromECMAScript6classinJavaScript?(1个回答)关闭1年前。这样做的原因很复杂,但归结为不理解混入或任何其他修改ES6类原型(prototype)的方式。所以我又回到了ES5,但我不知道如何在没有new的情况下调用ES6类的构造函数:classA{constructor(){}}functionB(){//whatdoIputhere?Iwoulddosomethinglike//A.prototype.constructor.call(this)buttha

javascript - ES6 : Re-defining exported function

给定一个导出函数并在其内部逻辑中使用该函数的第3方库-是否有任何方法可以重新定义该函数?例如:third-party.jsexportfunctiona(){console.log('a');}exportfunctionb(){a();}我的模块.jsimport*astpfrom'third-party';//Re-define,somethinglikethisObject.defineProperty(tp,'a',{writable:true,value:()=>console.log('c')});//Callbandgetthere-definefunctioncalle

javascript - 如何在 ES5 中使用计算属性名称?

我想要一个计算属性名称。我看到你可以在ES6中使用它。但是应该兼容IOSWebview。所以我不能使用ES6。还有如果这对某些人来说更容易,则计算出的名称在循环内将永远相同。有什么想法吗?vartoday=moment().format('DD.MM.YY');for(vari=0;i 最佳答案 如果您碰巧有充满ES6+语法的代码,例如计算的属性名称,并且您想让它与ES5兼容,目前最简单的方法是使用像Babel这样的转译器。自动为您完成。这将允许您使用最新和最易读的语言版本编写源代码,同时允许过时的浏览器理解转换后的代码,而您自己不

javascript - es6 模块到 commonjs,在 node harmony 标志下使用 typescript

我在--harmony标志下使用带有Node的TypeScript(1.6),所以我想将es6模块语法转换为commonjs。据我所知,我无法使用TypeScript1.6执行此操作。如果我将目标设置为es6,并将模块设置为commonjs,我会收到TypeScript错误-Cannotcompilemodulesinto'commonjs','amd','system'or'umd'whentargeting'ES6'orhigher.为什么TypeScript不能编译成带有ES6目标的commonjs?我想很多人都想这样做,因为Node还不支持ES6模块。我原以为新的moduleR

javascript - 使用 Gulp 远程导入字体

所以我注意到我当前的Gulp设置没有导入远程字体,例如谷歌字体。在我的main.scss文件中我有:@importurl(https://fonts.googleapis.com/css?family=Lato:400,100,100italic,300,300italic,700,700italic,400italic,900,900italic);当它编译缩小后看起来像这样:@font-face{font-family:Lato;font-style:normal;font-weight:100;src:local('LatoHairline'),local('Lato-Hairl

javascript - `if __name__ == ' __main__ '` 相当于 javascript es6 模块

是否可以检查JavaScript文件是直接运行还是需要作为es6模块导入的一部分。例如包含一个主脚本。//main.jsimport'./other';if(mainTest){console.log('Thisshouldrun');}导入依赖项。//other.jsif(mainTest){console.log('Thisshouldneverrun');}包括应导致来自main.js的控制台消息但不是other.js。我找到了answertothisquestionwithregardstonode,但我特别对es6导入感兴趣 最佳答案

javascript - 静态方法在 ES6 类中未定义,在 reactjs 中带有装饰器

我有一个带有装饰器的ES6类。它有一个静态方法foo。但是,当我尝试访问静态方法时,它是未定义的。@withStyles(styles)classMyComponentextendsComponent{staticfoo(){return"FOO";}render(){varx=MyComponent.foo;//x=undefined}}当我删除装饰器时,我可以访问静态方法。它不再是未定义的。classMyComponentextendsComponent{staticfoo(){return"FOO";}render(){varx=MyComponent.foo;//x=foo()