使用 JavaScript 导入节点模块

Kyl*_*595 9 javascript node.js shopify npm

对于这个简单的问题,我深表歉意,但我对 Web 开发和 JavaScript 还很陌生。

我想导入一个我使用 npm 安装的包,特别是 shopify-buy 按照这里的指南:https ://shopify.github.io/js-buy-sdk/

该包在我的 node_modules 文件夹中,我正在尝试使用 import Client from 'shopify-buy';

当我尝试在 Chrome 中加载所有内容时,导入行出现错误

Uncaught SyntaxError: Unexpected identifier
Run Code Online (Sandbox Code Playgroud)

Firefox 错误有点不同: import declarations may only appear at top level

我究竟做错了什么?

编辑:

导入行是我的 JavaScript 文件中的第一行。我的 HTML 文件正确链接到 JS 文件(我认为)。

shopify.js

// Functions for SHOPIFY
import Client from 'shopify-buy';

const client = Client.buildClient({
    domain: 'xxxxx.myshopify.com',
    storefrontAccessToken: 'xxxxx'
});
Run Code Online (Sandbox Code Playgroud)

索引.html

<script src="javascript/shopify.js"></script>
Run Code Online (Sandbox Code Playgroud)

小智 7

如果你想通过语法使用 npm 模块,比如import sth from "something"浏览器),则需要设置模块捆绑器和 ES6 编译器,例如 Webpack 和 Babel。您需要用谷歌搜索它们并找到相应的设置教程。

使用 SDK 的一种简单方法似乎是使用 CDN,因为它已经为浏览器理解而构建了。就像是:

索引.html

<script src="http://sdks.shopifycdn.com/js-buy-sdk/v1/latest/index.umd.min.js"></script>
<script src="javascript/shopify.js"></script>
Run Code Online (Sandbox Code Playgroud)

Shopify.js

const client = ShopifyBuy.buildClient({
    domain: 'your-shop-name.myshopify.com',
    storefrontAccessToken: 'your-storefront-access-token'
});

console.log(client); 
Run Code Online (Sandbox Code Playgroud)