在 Nativescript Playground 中导入 npm 包

Posted

技术标签:

【中文标题】在 Nativescript Playground 中导入 npm 包【英文标题】:Importing npm packages in Nativescript Playground 【发布时间】:2019-08-20 11:11:22 【问题描述】:

我正在尝试学习nativescript-vue,我正在使用 Nativescript 的 Playground 来试用我的示例代码。我正在尝试使用nativescript-localstorage 包,以便我可以将一些信息存储到本地存储中:

每当我尝试保存项目时,都会出现使用编译错误

以下是错误:

编译 nativescript-localstorage/localstorage.js 时出错。 未知:我们发现了一个不是 NodePath 实例的路径。可能是由于错误的序列化。

我按照教程添加了包,因为我的代码如下所示:

import Vue from 'nativescript-vue';
import Vuex from 'vuex';
import localStorage from 'nativescript-localstorage';
import userStore from './user-store';

//For local storage of vuex tools
const NSVuexPersistent = store => 
 // Init hook.
 let storageStr = localStorage.getItem('ns-vuex-persistent');
 if (storageStr) 
  store.replaceState(JSON.parse(storageStr))
 
 store.subscribe((mutation, state) => 
  // Subscribe hook.
  localStorage.setItem('ns-vuex-persistent', JSON.stringify(state));
 )
;

Vue.use(Vuex);

const debug = process.env.NODE_ENV !== 'production';

export default new Vuex.Store(
    modules: 
        userStore
    ,
    strict: debug,
    plugins: [NSVuexPersistent]
)

由于项目没有得到保存,所以我没有分享链接。帮我解决它。谢谢。

【问题讨论】:

【参考方案1】:

nativescript-vue 打包在 Preview APK 中,因此可以导入为

import Vue from 'nativescript-vue'

但是nativescript-localstorage 是您在项目中安装的东西,所以在 Playground 中您应该使用相对路径来导入模块,例如

import * as localStorage from "../nativescript-localstorage"

// Or

const localStorage = require("../nativescript-localstorage");

你可以使用import name from "package",只有当包在它的导出中标记了一些东西为默认值时,这个语法在 ES6 和 Vue 插件中是常用的。 nativescript-localstorage 默认没有导出任何内容。

【讨论】:

以上是关于在 Nativescript Playground 中导入 npm 包的主要内容,如果未能解决你的问题,请参考以下文章

NativeScript-Vue:如何安装 BottomNavigation 组件

NativeScript-Vue 中的音频播放器

使文件输入字段在Android nativescript vue webview上工作

tns 预览不适用于带有 nativescript-vue 的 android

RadListView 不显示项目

如何在 Nativescript-Vue 中使用 nativescript-drawingpad?