繁体   English   中英

Snowpack 无法从 node_modules 导入 JavaScript

[英]Snowpack cannot import JavaScript from node_modules

我目前正在使用 Snowpack 构建/准备应用程序。 我正在尝试导入作为package.json文件中的dependencies项(块)的一部分安装的 JavaScript 库,但不知何故,Snowpack 没有获取该库。

这是package.json文件(相关内容的摘录):

{
  "private": true,
  "type": "module",
  "scripts": {
    "build": "snowpack build",
    "preview": "snowpack dev"
  },
  "dependencies": {
    "impress.js": "1.1.0"
  },
  "devDependencies": {
    "snowpack": "3.3.7"
  },
  "engines": {
    "node": "14.x"
  }
}

snowpack.config.js仅包含以下几行:

/** @type {import("snowpack").SnowpackUserConfig } */
export default {
  devOptions: {
    open: "none",
  },
  mount: {
    src: {
      url: "/",
    },
  },
};

我期待 Snowpack 将impress.js库与这个 HTML 文件捆绑在一起:

<!DOCTYPE html>
<html lang="en">
  <head>
    ...
  </head>
  <body>
    <script src="node_modules/impress.js/js/impress.min.js"></script>
    <script src="scripts/global.js" type="module"></script>
  </body>
</html>

有没有办法为这些事情配置 Snowpack?

如果您只是想将 Impress 模块转换为 ESM,您是否考虑过尝试esinstall

IE

转换.mjs:

import {install} from 'esinstall';
await install(['impress.js'], {});
node convert.mjs

然后在您的 HTML 文件中:

 <script src="web_modules/impress.js"></script>

如果有人遇到与此类似的情况,我发现捆绑Impress.js (以及可能已经/尚未模块化的任何其他库)的方式是将其import JavaScript 文件中(注意type="module"在 HTML script标签中):

<!DOCTYPE html>
<html lang="en">
  <head>
    ...
  </head>
  <body>
    <script src="scripts/global.js" type="module"></script>
  </body>
</html>
import "impress.js";

impress(); // ...bootstraps/initializes Impress.js

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM