Vue.js 如何使用npm包依赖关系

Vue.js 如何使用npm包依赖关系,vue.js,npm,nuxt.js,npm-scripts,Vue.js,Npm,Nuxt.js,Npm Scripts,我正在学习通过创建会话检查函数sessionFn来创建npm包,该函数将在会话到期前1分钟弹出一个模式 该函数在主应用程序a nuxtJS应用程序上按预期工作,但当我将其用作npm模块时,我必须将矩作为参数传递,即使矩作为依赖项列出并导入到模块中 我错过了一些东西,为什么我的模块不能及时恢复?我想使用sessionfnith这样的模块to.path;而不是sessionfnith,to.path,moment;当我没有通过的时候,这个时刻是不确定的 包文件 package.json { 姓名:你

我正在学习通过创建会话检查函数sessionFn来创建npm包,该函数将在会话到期前1分钟弹出一个模式

该函数在主应用程序a nuxtJS应用程序上按预期工作,但当我将其用作npm模块时,我必须将矩作为参数传递,即使矩作为依赖项列出并导入到模块中

我错过了一些东西,为什么我的模块不能及时恢复?我想使用sessionfnith这样的模块to.path;而不是sessionfnith,to.path,moment;当我没有通过的时候,这个时刻是不确定的

包文件

package.json

{ 姓名:你好,stratech, 版本:1.0.17, 描述:你好,Stratech, main:index.js, 关键词:[ npm, 你好 战略 ], 作者:Simo Mafuxwana, 许可证:ISC, 依赖项:{ 力矩:^2.22.2 } } index.js主js文件

从瞬间导入瞬间; module.exports={ 欢迎姓名{ alertHello..+名称; }, 部门发展{ ... }, 会议背景{ const exp=context.$store.state.session.exp; 让userSystemTime=新日期; userSystemTime=moment.utcuserSystemTime const diff=momentuserSystemTime.diffmomentexp,“分钟”; 如果差异=1{ //开放模态 } } } 用法

这是我在主应用程序中使用软件包的方式

从“力矩”中导入力矩; 从hello stratech导入{sessionFn}; 导出默认值{ ... 观察:{ $routeto{ sessionfnith,to.path,moment; } } ... } 尝试通过npm i矩将矩作为devDependancy-保存dev而不是依赖项

这样,只有当包是开发时才需要时间,也就是说,当您正在开发项目时,而不是当它被使用时

希望它能解决你的问题


您不需要将矩导入并传递到函数中,因为您正在将它导入到函数文件中。您甚至没有在函数中使用传递的参数。所以你可以放心地不通过它。您也没有使用传递给.path的第二个参数,因此您也可以忽略它

作为一项建议,您应该安装并使用eslint,它将捕获此类内容。您可以使用eslint设置nuxt项目,例如


esm 3.21-3.22中还有一个bug,它阻止commonjs和es6导入一起工作。当使用path时,新esm将被释放到时,应修复该问题。使用它的代码部分与问题无关,因此它不在代码段中。您不需要将矩导入并传递到函数中,因为您正在将它导入到函数文件中-正如我所说,当我使用sessionfnith时,to.path矩未定义,我必须传递sessionfnith,to.path,矩;调用要拾取的时刻的函数时up@SimoD“loMafuxwana您正在混合cjs和es6导入,esm中存在破坏这种用法的bug,我想这是您的情况。将module.exports更改为es6,然后重试。我将导入更改为const moment=requirement;它成功了。Thanks@SimoD“loMafuxwana我已经更新了关于esm缺陷的答案: