标签: es6-module-loader

VueJS中全球可用的混合物

我正在尝试创建一个全局可用的mixin,但不会自动注入到每个组件中.即我不想要这个:Vue.mixin({...});

我按照这些说明设置了项目.是我的项目结构.我也assets/js/mixins.js有包含我的mixins的文件.

我希望能够在我的个人.vue文件中执行此操作(我的许多组件都使用myMixin但不是全部):

<script>
export default {
    mixins:[myMixin],
    data:{....}
}
</script>
<template>
  <!-- some template code -->
</template>
Run Code Online (Sandbox Code Playgroud)

到目前为止,唯一的方法是将此行添加到需要它的每个组件的顶部:

import {myMixin} from './assets/js/mixins.js"
Run Code Online (Sandbox Code Playgroud)

但有没有办法做到这一次,并在myMixin全球范围内提供变量?我已尝试将其包含在内main.js和中app.vue但如果我尝试myMixin在任何子组件中使用,我仍然会得到"myMixin未定义"错误.

或者是否有另一种注册mixin的方法,不需要我mixins.js在每个组件中键入文件的路径?

ecmascript-6 webpack vue.js es6-module-loader

4
推荐指数
1
解决办法
4464
查看次数

需要工作但导入不起作用

我有一个actions.js文件导出这样的动作

export var toggleTodo = (id) => {
  return {
    type: 'TOGGLE_TODO',
    id
  }
}
Run Code Online (Sandbox Code Playgroud)

但是当我使用es6导入它时,我得到错误

Uncaught TypeError: Cannot read property 'toggleTodo' of undefined
Run Code Online (Sandbox Code Playgroud)

但当我需要它使用常见的js要求它工作得很好!有人可以向我解释为什么会发生这种情况,我的意思是我读到这两个是相同的事情......似乎有些不同?

// var actions = require('actions') working 
// dispatch(actions.toggleTodo(id));

import actions from 'actions' //not working
dispatch(actions.toggleTodo(id));
Run Code Online (Sandbox Code Playgroud)

es6-module-loader es6-class es6-modules

4
推荐指数
1
解决办法
6129
查看次数

打字稿块节点/模块工厂模式:错误TS4060

使用ES6模块语法导出返回类Typescript实例的工厂函数时,会产生以下错误:

错误TS4060:导出函数的返回类型具有或正在使用私有名称"路径".

来自paths.ts:

//Class scoped behind the export
class Paths {

    rootDir: string;

    constructor(rootDir: string) {

        this.rootDir = rootDir;

    };


};

//Factory function: returns instances of Paths
export default function getPaths(rootDir:string){ 

    return new Paths(rootDir);

};
Run Code Online (Sandbox Code Playgroud)

这个合法的ES6 javascript.但是,我发现的唯一工作就是出口课程.这意味着当它被编译到ES6时,正在导出类,从而无法在模块中确定范围.例如:

//Class now exported
export class Paths {

    rootDir: string;

    constructor(rootDir: string) {

        this.rootDir = rootDir;

    };


};

//Factory function: returns instances of Paths
export default function getPaths(rootDir:string){ 

    return new Paths(rootDir);

};
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?在我看来,这个模式应该由打字稿支持,特别是在ES6编译中,模式变得更加突出.

typescript ecmascript-6 es6-module-loader

3
推荐指数
1
解决办法
587
查看次数

如何在不导出整个类的情况下导出静态类方法

我正在创建一个节点包来处理 cookie。从下面的类中导出静态类方法的最佳方法是什么?

export default class Cookies {
    static get (name) {...}
    static set (...) {...}
    static remove (...) {...}
}
Run Code Online (Sandbox Code Playgroud)

那么是否可以像这样导入它们,因此人们如果不需要它就不必导入 remove 方法?

import { get, set } from "Cookies"

javascript webpack es6-module-loader es6-modules

3
推荐指数
1
解决办法
2643
查看次数

Javascript(ES6)模块:是否可以使用动态名称导出变量?

在ES6中我可以导出一个简单的foo常量:

export const foo = 1;
Run Code Online (Sandbox Code Playgroud)

我还可以将该export(1)的值转换为变量,并导出:

const fooValue = 1;
export foo = fooValue;
Run Code Online (Sandbox Code Playgroud)

但我的问题是,有什么办法可以将export()的转换foo为变量:

const fooLabel = 'foo';
const fooValue = 1;
export something(fooLabel) = fooValue;
Run Code Online (Sandbox Code Playgroud)

或者导出总是必须明确命名?

javascript ecmascript-6 es6-module-loader

3
推荐指数
1
解决办法
2029
查看次数

Webpack:index.js以外的默认文件

在当前的webpack项目中,我的代码被分区为模块,每个模块都有一个带有.module.js结尾的主入口点.例如,对于模块Util,入口点是util.module.js,我通过写入将其包含在其他模块中import util from 'modules/util/util.module.js'

但是,由于所有模块的入口点语法都相同,我宁愿避免指定条目的完整文件名.例如,如果我能写的话会很好import util from 'modules/util'.

我知道这有用,如果util.module.js是名字index.js,但我怎么能告诉Webpack以同样的方式获取我当前的模块条目?

javascript ecmascript-6 webpack es6-module-loader es6-modules

3
推荐指数
1
解决办法
1198
查看次数

等待 JavaScript 中的动态导入

在尝试移植我们的一些 JS 代码以使用模块时,我遇到了这个我无法解释的特殊情况。我正在设置我的主要 JS 文件,以便为我的主要入口点进行动态导入,然后他们又为他们需要的所有文件进行导入。设置如下所示:

索引.js

(async function () {
    await import('./firstLevel1.js');
    await import('./firstLevel2.js');
 })()
Run Code Online (Sandbox Code Playgroud)

第一层1.js

(async function () {
    await import('./secondLevel1.js');
    await import('./secondLevel2.js');
})()
Run Code Online (Sandbox Code Playgroud)

第一层2.js

(async function () {
    await import('./secondLevel3.js');
    await import('./secondLevel4.js');
})()
Run Code Online (Sandbox Code Playgroud)

由于我导入的某些代码是遗留代码,因此我将 index.js 的脚本标记设置为 async="false" 以确保所有文件都以正确的顺序加载。在这个特定的例子中,我希望加载顺序是 index.js、firstLevel1.js、secondLevel1.js、secondLevel2.js、firstLevel2.js。secondLevel3.js 最后是 secondLevel4.js。但是当我查看 chrome 中的加载顺序时,这就是我所看到的。

在此处输入图片说明

这对我来说变得有问题,因为 JS 加载的顺序不是我想要正确设置旧文件的顺序。

为什么我看到的加载顺序与我预期的不同?有没有办法让它们同步加载?

javascript dynamic-import es6-module-loader es6-modules

3
推荐指数
1
解决办法
8424
查看次数

使用requirejs模块作为es6模块

我正在尝试将我的项目迁移到ES6模块,但我遇到了一个问题.

我有第三方脚本,在requirejs的帮助下使用模块.我们将其命名为3rdParty.js.它是通过凉亭获得的,因此没有能力并希望更新它.

有没有办法导入3rdParty.js,使用ES6语法而不从文件中删除定义函数?

javascript commonjs requirejs ecmascript-6 es6-module-loader

2
推荐指数
1
解决办法
2557
查看次数

ES6 Module Loader中简单import语句和System.import之间的区别

是否有人能够解释ES6模块加载器(或Polyfills,如System.js,Webpack等)的简单importSystem.import声明之间的区别

就像是

System.import('https://code.jquery.com/jquery.js').then();
Run Code Online (Sandbox Code Playgroud)

似乎是可能的,也是一种简单的

 import 'jquery';
Run Code Online (Sandbox Code Playgroud)

是否System.import有import语句后回调的唯一可能性?

javascript ecmascript-harmony ecmascript-6 es6-module-loader

2
推荐指数
1
解决办法
918
查看次数

如何使用ES6语法访问导入属性

可以var merge = require('lodash').merge用ES6 做点什么吗?

希望有类似的东西import {lodash.merge as merge} from 'lodash'.

javascript ecmascript-6 es6-module-loader

2
推荐指数
1
解决办法
821
查看次数