“ReferenceError:fs 未定义”与 Webpack 4

问题描述 投票:0回答:1

大家早上好。 我正在尝试测试“parse-kml”包,但在捆绑脚本时收到几个错误。 我尝试使用 Webpack v5,但由于缺少很多 polyfilss,我遇到了一些问题,所以我回到了 Webpack v4。

这是一些代码

webpack.config.js

const path = require("path");

module.exports = {
  externals: ["fs", "net", "tls"],
  mode: "development",
}

package.json

{
  "name": "kmltest",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "build": "webpack --config webpack.config.js"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "webpack": "^4.47.0",
    "webpack-cli": "^3.3.12"
  },
  "dependencies": {
    "fs": "0.0.1-security",
    "net": "^1.0.2",
    "parse-kml": "^1.0.1",
    "tls": "0.0.1"
  }
}

index.js

const parseKML = require("parse-kml");
// Read KML From File
parseKML
  .readKml("./test.kml")
  .then((res) => console.log("Loaded"))
  .catch((err) => console.error("error"));

index.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Test</title>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width,initial-scale=1" />
    <meta name="description" content="test content" />
  </head>
  <body>
    <h1>Testing KML/h1>

    <script src="main.js"></script>
  </body>
</html>

如您所见,没有什么那么复杂,但是一旦我捆绑脚本并打开网页,我的控制台就会显示此错误:

enter image description here

这是我第一次自己配置webpack,所以我确信我犯了一些错误。 你能帮我吗?

谢谢!

javascript node.js webpack
1个回答
0
投票

以下是您应该了解的一些事项:

  1. 客户端依赖关系

    • 您不能在客户端导入的 javascript 文件上使用
      require
    • 如果需要,可以通过 CDN 在 HTML 文件中包含依赖项。
  2. 在 Node.js 中使用

    fs
    :

    • fs
      模块内置于Node.js中,不需要任何额外的安装或配置。
    • 您的
      "fs": "0.0.1-security"
      文件中的
      package.json
      行是不必要的,应将其删除。
  3. 管理依赖关系:

    • 任何第三方库都应该自动安装其所有依赖项。
    • 按照以下步骤清理并重新安装依赖项:
      1. 删除
        node_modules
        目录。
      2. 从您的
        "fs": "0.0.1-security"
        文件中删除行
        package.json
      3. 运行
        npm install
        yarn install
        重新安装依赖项。
  4. 运行 Node.js 脚本:

    • 为了简单的概念证明,请勿使用 Webpack 或其他捆绑器。
    • 只需安装必要的软件包并使用
      node index.js
      运行脚本。
    • 此设置不需要 HTML 文件。

图书馆可能还不错。完成上述步骤后,再试一次。您可以稍后在需要时配置 webpack。

© www.soinside.com 2019 - 2024. All rights reserved.