如何在本机

时间:2018-02-22 09:39:37

标签: node.js reactjs react-native import

希望你做得很好。

我是本土的新手,在尝试导入节点模块时我遇到了问题。

我需要创建一个应用程序,通过WooCommerce从Wordpress网站的API获取订单。

我首先使用命令create-react-native-app picking然后npm install创建了一个项目。它在名为picking的项目文件夹中创建了这样的结构:

node_modules
App.js
app.json
App.test.js
etc....

然后我使用woocommerce-apihttps://www.npmjs.com/package/woocommerce-api)安装了包npm install woocommerce-api --save。这个包允许我更容易地向WooCommerce API请求。

我想不要将配置放到App.js中的WooCommerce API中,所以我创建了一个文件夹src和一个带有文件api.js的文件夹woocommerce(我应该用大写的第一个字母写它吗? )在其中,我在我的App.js中添加了import Api from 'picking/src/woocommerce/api';

所以现在结构是

node_modules
src
  -- woocommerce
    -- api.js
App.js
app.json
App.test.js
etc....

问题是我无法从WooCommerceAPI导入woocommerce-api模块,无论我在获取模块的路径中设置了什么。

目前有api.js文件:

import WooCommerceAPI from '../../woocommerce-api';

var Api = new WooCommerceAPI({
    url: 'http://localhost/mysite',
    consumerKey: 'ck_xxxxxxxxxxxxxxxxxxxxxxxxxx',
    consumerSecret: 'cs_xxxxxxxxxxxxxxxxxxxxxxxxxxx',
    wp_api: true,
    version: '/wc/v2',
    queryStringAuth: true
});

export default Api;

我收到错误:

Unable to resolve module '../../woocommerce-api' from etc ...

我找不到问题所在以及为什么这不起作用。如果你可以帮助我,那将是非常好的。

大家度过美好的一天:)

编辑:我将导入的行更改为import WooCommerceAPI from 'woocommerce-api';,我收到了一个新错误:Metro Bundler has encountered an internal error, please check your terminal error output for more details,但除{{1}外,终端中没有任何内容}。

EDIT2 :我将节点从9.4降级到8.0.0并重新启动项目。我得到了同样的错误,但在终端我现在得到黄色/橙色:Failed building JavaScript bundle

2 个答案:

答案 0 :(得分:0)

好的,所以我找到了解决方法。事实上,进口是有效的。由于某种原因,我不知道,这是npm包无法正常工作并使应用程序崩溃。

所以我删除了包woocommerce-api并在src/woocommerce中创建了一个名为woocommerce-api.js的文件,然后我复制了这个与woocommerce-api.js相同的内容在npm包中,我将其粘贴到我的api.js中。我在我的let appName = Bundle.main.object(forInfoDictionaryKey: "CFBundleDisplayName") as! String文件和“voilà”中导入它!

似乎工作正常。

答案 1 :(得分:0)

在项目中安装woocommerce-api时,无需放置../../woocommerce-api这样的位置。

只需将../../woocommerce-api更改为woocommerce-api,您的项目即可运作。