как импортировать функции из разных JS-файлов в проект Vue+webpack+Vue-loader

(см. Конец, почему это не обман Как включить файл JavaScript в другой файл JavaScript?)

Javascipt + Vue + webpack + Vue-загрузчик noob... наткнуться на простейшую вещь!

я App.vue, который имеет шаблон:

<template>
 <div id="app">
     <login v-if="isTokenAvailable()"></login>
 </div>
</template>

я объявляю isTokenAvailable метод обычным способом для Vue внутри methods. Он использует функцию, которую я написал в отдельном :

<script>
import * as mylib from './mylib';

export default {
  ....
    methods:{
        isTokenAvailable: () => {
            return mylib.myfunc();
        }
    }
}
</script>

mylib начинается так:

import models from './model/models'
import axois from 'axios'

export default function() {
    // functions and constants
}

когда я запускаю проект, я получаю предупреждение:

export 'myfunc' (imported as 'mylib') was not found in './mylib'

я понимаю, что я неправильно импортирую или объявляю модуль javascript... но, похоже, есть так много способов сделать это, добавленных со сложностью области обзора в Vue, я не уверен, что это "правильный" способ сделать это?

спасибо заранее

почему это не обман: Как включить файл JavaScript в другой JavaScript файл?

похоже, не устраняет проблему, особенно в контексте vuejs.

я попытался это:

<script>
const mylib = require('./mylib');
...
</script>

С функцией изменен на: exports.myfunc = function()

должен ли я иметь какую-то другую зависимость для этого? потому что я получаю другую ошибку:

[Vue warn]: Error in render function:
TypeError: mylib.myfunc is not a function

2 ответов


после нескольких часов возни я в конце концов получил что-то, что работает, частично ответил в аналогичном вопросе здесь: Как включить файл JavaScript в другой файл JavaScript?

но был импорт, который испортил все остальное:

требуются в .vue файлы

<script>
  var mylib = require('./mylib');
  export default {
  ....

экспорт в mylib

 exports.myfunc = () => {....}

избежать import

фактическая проблема в моем случай (который я не думал, что имеет отношение!), что mylib.js сам использовал другие зависимости. Результирующая ошибка, похоже, не имеет к этому никакого отношения, и не было никакой ошибки транспилирования из webpack но в любом случае у меня было:

import models from './model/models'
import axios from 'axios'

это работает до тех пор, пока я не использую mylib на


скажем, я хочу импортировать данные в компонент из src/mylib.js:

var test = {
  foo () { console.log('foo') },
  bar () { console.log('bar') },
  baz () { console.log('baz') }
}

export default test

в моем .Vue файл я просто импортировал test С src/mylib.js:

<script> 
  import test from '@/mylib'

  console.log(test.foo())
  ...
</script>