【发布时间】:2019-09-12 10:22:19
【问题描述】:
我正在学习通过创建会话检查函数sessionFn 来创建 npm 包,该函数将在会话到期前 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
}
}
}
用法
这就是我在主应用程序中使用包的方式
import moment from 'moment';
import { sessionFn } from "hello-stratech";
export default {
...
watch: {
$route(to) {
sessionFn(this, to.path, moment);
}
}
...
}
【问题讨论】:
标签: vue.js npm nuxt.js npm-scripts