无法在 node.js 中导入模块 [重复]

Posted

技术标签:

【中文标题】无法在 node.js 中导入模块 [重复]【英文标题】:Can't import modules in node.js [duplicate] 【发布时间】:2021-10-22 01:03:52 【问题描述】:

我正在尝试构建一个电子 Desctop 应用程序,但是当我想使用 nodejs 的文件系统 (fs) 时,我收到错误“未捕获的 ReferenceError:未定义要求”。当我搜索问题时,我从您的 package.json 中发现了一些提示,例如“delete "type:" "module" " 或使用 import 来代替,但对我来说没有任何效果。我一般不能使用任何模块,不仅是 fs,而且我的 main.js 中的所有内容都可以正常工作。

const  app, BrowserWindow  = require('electron');
const path = require('path');

// Handle creating/removing shortcuts on Windows when installing/uninstalling.
if (require('electron-squirrel-startup'))  // eslint-disable-line global-require
  app.quit();


const createWindow = () => 
  // Create the browser window.
  const mainWindow = new BrowserWindow(
    width: 800,
    height: 600,
    webPreferences: 
      nodeIntegration: true
    
  );

如您所见, require() 有效,但仅限于那里。 当我想在我的 index.html 中使用它来读取文件时,它不起作用。

const  readFile  = require('fs');
readFile('./foo.txt', (err, source) => 
  if (err) 
    console.error(err);
   else 
    console.log(source);
  
);
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Test</title>
    <link rel="stylesheet" href="index.css" />
    <script defer src="test.js"></script>
  </head>
  <body class="content">
  </body>
</html>

我并不是一个真正有经验的程序员,所以我希望我不会犯明显的错误并浪费您的时间,我期待您的帮助。

【问题讨论】:

你可以将const readFile = require('fs')改写成import readFile from "fs" 我已经尝试过将“type= module”添加到我的脚本标签,但它仍然没有工作它只是给了我另一个错误:“Uncaught TypeError: Failed to resolve module specifier “fs”。相对引用必须以“/”、“./”或“../”开头。” 【参考方案1】:
function createAddItemWindow() 

    // Create a new window
    addItemWindown = new BrowserWindow(
        width: 300,
        height: 200,
        title: 'Add Item',

        // The lines below solved the issue
        webPreferences: 
            nodeIntegration: true
        
)

解决方案是here提出的。

【讨论】:

以上是关于无法在 node.js 中导入模块 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在 ES 模块(Node.js)中导入 JSON 文件

在 node.js 中导入 sql 文件并针对 PostgreSQL 执行

在 ES6 Node.js 中导入“.json”扩展会引发错误

如何在 Node.js REPL 中导入 ES 模块?

如何使用 TypeScript 导入自定义 node.js 插件模块

如何从项目中导入模块[重复]