2015-07-15 2 views
1

Допустим, у меня есть модуль, как это,Присвоить переменной «import'ed модуль ES2015

//mul.js 
export default function (v) { 
    return v * v; 
} 

использование как следует.

import mul from 'mul.js' 
console.log(mul(3)) 

Вопрос заключается в том, как я могу назначить модуль mul другой переменной (или объекта)? Я не хочу загрязнять пространство имен для каждого модуля.

+0

Похоже, что такого способа нет. – zerkms

+0

Я добавил ответ ниже, который, я думаю, поможет вам решить вашу проблему. Скажите, правильно ли я понял вашу всеобъемлющую проблему. – royhowie

+0

Я думаю, что ваш посреднический файловый подход - клавер в этом случае. В то же время я несколько неправильно понял, какой модуль должен быть - в основном модулю требуется пространство имен, достаточно общее для рассмотрения как отдельный модуль. Поэтому использование 'import * as utils из 'path/to/utils.js'' и' export function mul() {...} 'подходит в моем случае. Вы все равно решили мою проблему. – hiun

ответ

2

Чтобы предотвратить загрязнение пространства имен, я обычно использую файл-посредник. Например, это, как я организую свои запросы к базе данных:

// queries.js 
import { calEventQueries } from './calevent/calevent' 
import { courseQueries } from './course/course' 
import { paymentPlanQueries } from './paymentplan/paymentplan' 
/* etc etc etc */  

/* then I export them individually */ 
export { calEventQueries } 
export { courseQueries } 
export { paymentPlanQueries } 

/* and as a group */ 
export default { 
    calEventQueries, 
    courseQueries, 
    paymentPlanQueries, 
} 

Тогда все, что нужно сделать, это

import queries from '../path/to/queries.js' 

, если я хочу, чтобы иметь доступ ко всем из моих запросов от одной переменной, например, , queries.calEventQueries.

Это полезно, однако, потому что я могу также легко захватить только один набор запросов:

import { courseQueries } from '../path/to/queries.js' 

Второй вариант заключается в использовании as ключевое слово:

import { default as someOtherName } from '../path/to/mul.js' 

но Я не уверен, что это подходит для вашего случая использования.