Articles of es6 module loader

如何确定如何导入模块

现在我正在将模块导入到节点项目中 导入*作为“moduleName”的名称; 我没有这样做 var name = require(“moduleName”); 就像我们以前在节点项目中一样 我的问题是在编写一个模块时,我们在使用require或import导入时有区别,只是我们以不同的方式导入的内部模块相同,或者导入时导致我们使用require或import 请求和导入(es6)有什么区别? 谢谢!

ES6模块导入具有单独导出的文件组

我想将一些模块组合成一个可导入的文件。 这些是本地文件,不是npm模块的一部分。 模块小猫(kitten.js) export function Feed() {} export function Play() {} 在我的代码中,我可以访问“Feed”和“Play”: // This works but I would like to avoid this due to my paths import { Feed, Play } from './some/long/path/kitten.js' // Then use it Feed() 因为我有很多“宠物”,我可以在主文件中使用它们 – 比如说pets.js export * as Kitten from './some/long/path/kitten.js' export * as Puppies from './some/long/path/puppies.js' … 在我的代码中,我可以这样做: […]

将ES模块(.mjs)发布到NPMJS,并向后兼容节点<8.5.0

直到Node v8.5.0,将一个用ES6编写的模块发布到NPMJS中是一个简单的过程:使用Babel这样的工具来转换ES6代码,然后将结果的lib目录发布到NPMJS,而你的GitHub仓库包含src文件。 在v8.5.0中,Node已经通过–experimental-modules标志发布了本地模块 ( export / import )的实验支持 。 现在可以将纯ES6模块发布到NPMJS上 ,只要涉及的文件具有.mjs扩展名,就可以在不进行任何转换的情况下使用它们 。 如何发布ES6模块( .mjs ),以便它也可以用于不支持ES本地模块的旧版本的Node?

Webstorm意外的令牌导出

我在Webstorm中有一个“意外的令牌导出”问题,尚未被其他StackOverflowpost解决。 基本上我正在尝试使用下面的package.json和bar.js代码的导入/导出模块function。 我正在使用Node.js 5x,Babel 6,并且我有一个File Watcher设置来实现Babel变换。 代码应该说明一切,我很感激关于如何解决它的任何想法。 再次,我已经尝试了其他的StackOverflowbuild议,在这一点上没有运气。 //bar.js 'use strict'; export class Bar{ constructor(){ this.tempish = 'allo'; } } //bar-compiled.js 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var Bar = exports.Bar = function […]

Javascript导入句柄未定义

是否有可能在下面的switch case例子语句中发现错别字? 首选的方法是,eslinter报告警告/错误。 如果未定义,则可以使用toString() to const来在运行时TypeError 。 actionTypes.js export const UPDATE_REQUEST = 'UPDATE_REQUEST'; reducer.js import * as types from '../constants/actionTypes'; export default function pouchdbReducer(state = {}, action) { switch (action.type) { case types.UPDDATE_REQUEST: // there is a typo above and it evaluates to `undefined` // this code would never be reached – how to make […]

如何在ES6中获得对类函数的引用?

对不起,如果问题太简单了,但我在这里错过了一些东西。 刚刚切换了一个如下所示的ES5模块: module.exports = { func1: function(a, b) {…}, func2: function(a, b) {…} }; 对于看起来像这样的ES6类: export default class { func1(a, b) {…} func2(a, b) {…} } 一切都很好:在这两种情况下,我都可以export mod from 'module'; 并调用mod.func1(a, b)和mod.func2(a, b) 。 但是,我有一个function,接收模块函数来调用: var caller = function(func, val1, val2) { let a = something(val1); let b = something(val2); return func(a, b); }; 当我调用调用caller(mod.func1, […]

ES6(EcmaScript 2015)模块:导入index.js

在互联网上看,我与特殊的“index.js”模块文件混淆。 使用babelJS + nodeJS或Browserify / Webpack我可以import myLib from "./libs" (即省略/index或/index.js部分)使用import myLib from "./libs" “libs”目录中的“index.js”模块。 是ES6(EcmaScript 2015)模块官方标准支持的“index.js”模块分辨率(指定包含文件夹)? 还是只是“自定义”的NodeJS / CommonJS转储行为? 是否可以省略/index | /index.js所有浏览器中的导入部分(当所有浏览器都支持模块时)?