(см. В конце, почему это не дупе https://stackoverflow.com/questions/950087)
Javascipt + вю + webpack + вю-погрузчик нуб... спотыкаться на самых простых вещах!
У меня есть приложение.вю`, у которого есть шаблон:
<template>
<div id="app">
<login v-if="isTokenAvailable()"></login>
</div>
</template>
Я объявляю isTokenAvailable
метод в обычным способом для методов вю внутри`. Он использует функции, которые я писал в отдельный файл
Яш`:
<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, я'м не уверен, что в "Правый" и способ, как это сделать?
Спасибо заранее
Почему это'т оболванивания: https://stackoverflow.com/questions/950087
Не'т, кажется, чтобы исправить проблему, в частности, в контексте vuejs.
Я попытался это:
<script>
const mylib = require('./mylib');
...
</script>
С функцией изменен на: экспорт.myfunc = функция()`
я должен иметь некоторые другие зависимости для этой работы? Потому что я получаю другое сообщение об ошибке:
[Vue warn]: Error in render function:
TypeError: mylib.myfunc is not a function
Сказать, что я хочу, чтобы импортировать данные в компонент 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>
После нескольких часов возни в конце концов я получил то, что работает, частично ответил на подобный вопрос здесь: https://stackoverflow.com/questions/950087/how-do-i-include-a-javascript-file-in-another-javascript-file
Но был импорт, который был завинчивания остальные это:
.файлы Vue
<script>
var mylib = require('./mylib');
export default {
....
exports.myfunc = () => {....}
Актуальная тема в моем случае (который я не'т думаю, что было актуальным!) что mylib.js был сам с помощью других зависимостей. Результирующее сообщение об ошибке, кажется, не имеют ничего общего с этим, и не было никакой ошибки transpiling от webpack-но во всяком случае я:
import models from './model/models'
import axios from 'axios'
Это работает так долго, как я'м не с помощью библиотеки MyLibв
.вю компонент. Однако, как только я использовать библиотеки MyLib
есть, ошибки, описанной в этом вопросе возникает.
Я поменял на:
let models = require('./model/models');
let axios = require('axios');
И все работает, как ожидалось.
Мне нравится ответ Anacrust, хотя, тот факт, что "консоль.журнал" это выполняется дважды, я хотел бы сделать небольшое обновление для src/mylib.js`:
let test = {
foo () { return 'foo' },
bar () { return 'bar' },
baz () { return 'baz' }
}
export default test
Весь остальной код остается тот же...