我是本土的新手,在尝试导入节点模块时我遇到了问题。
我需要创建一个应用程序,通过WooCommerce从Wordpress网站的API获取订单。
我首先使用命令create-react-native-app picking
然后npm install
创建了一个项目。它在名为picking
的项目文件夹中创建了这样的结构:
node_modules
App.js
app.json
App.test.js
etc....
然后我使用woocommerce-api
(https://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
答案 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
,您的项目即可运作。