Я учусь создавать пакеты npm, создавая функцию проверки сеанса sessionFn
, которая будет всплывать модально за 1 минуту до истечения сеанса.
Функция работает, как и ожидалось, в главном приложении (приложении nuxtJS), но когда я использую ее в качестве модуля npm, я должен передать moment
в качестве аргумента, даже если moment
указан как зависимость и импортирован на модуле.
Я что-то упустил, почему мой модуль не запускает момент? Я хочу использовать модуль типа sessionFn(this, to.path);
вместо sessionFn(this, to.path, moment);
, когда я не передаю его, момент не определен
Файлы пакетов
package.json
{
"name": "hello-stratech",
"version": "1.0.17",
"description": "Hello Stratech",
"main": "index.js",
"keywords": [
"npm",
"hello",
"stratech"
],
"author": "Simo Mafuxwana",
"license": "ISC",
"dependencies": {
"moment": "^2.22.2"
}
}
index.js (основной файл js)
import moment from "moment";
module.exports = {
greeting(name) {
alert("Hello.. " + name);
},
department(dev) {
...
},
sessionFn(context) {
const exp = context.$store.state.session.exp;
let userSystemTime = new Date();
userSystemTime = moment.utc(userSystemTime)
const diff = moment(userSystemTime).diff(moment(exp), 'minutes');
if (diff = 1) {
// open modal
}
}
}
Usage
Вот так я использую пакет в основном приложении
import moment from 'moment';
import { sessionFn } from "hello-stratech";
export default {
...
watch: {
$route(to) {
sessionFn(this, to.path, moment);
}
}
...
}