node.js - Webpack - 找不到模块 : Error: Can't resolve 'node_modules\chokidar\lib'

标签 node.js webpack electron chokidar

当我使用 npm 包“Electron-reload”编译我的 Electron 应用程序时。我有一个错误。
显然,Electron-reload 使用 chokidar 来监视我的应用程序文件,因此它可以在检测到文件更改时重新加载它。
使用 webpack 编译 Electron 主进程时出现的错误:

WARNING in ./node_modules/chokidar/lib/fsevents-handler.js
Module not found: Error: Can't resolve 'fsevents' in 
'C:\[...]\node_modules\chokidar\lib'
我的 Electron 应用程序运行时出现的错误:
TypeError: Cannot read property 'filename' of undefined
 at Object.eval (webpack:///./node_modules/electron-reload/main.js?:12:32)
 at eval (webpack:///./node_modules/electron-reload/main.js?:86:30)
 at Object../node_modules/electron-reload/main.js (C:\[...]\Dist\Electron\app.js:322:1)
 at __webpack_require__ (C:\[...]\Dist\Electron\app.js:20:30)
 at eval (webpack:///./Electron/app.ts?:5:5)
 at Object../Electron/app.ts (C:\[...]\Dist\Electron\app.js:109:1)
 at __webpack_require__ (C:[...]\Dist\Electron\app.js:20:30)
 at C:\[...]\Dist\Electron\app.js:84:18
 at Object.<anonymous> (C:\[...]\Dist\Electron\app.js:87:10)
 at Module._compile (internal/modules/cjs/loader.js:1145:30)
我无法从 Electron-reload、chokidar 或 webpack 在线找到任何有用的东西。这是我的 webpack.config.js
const path = require('path');
module.exports = {
    mode: "development",
    entry: "./Electron/app.ts",
    target: "electron-main",
    module: "es6",
    watch: true,
    stats: 'minimal',
    output: {
        path: path.resolve(__dirname, "./Dist/Electron/"),
        filename: "app.js",
    },
    module: {
        rules: [
            {
                test: /\.tsx?$/,
                use: 'ts-loader',
                include: /Electron/,
            },
        ]
    },

    resolve: {
        extensions: ['.ts', '.tsx', '.js']
    }
}
感谢您的帮助。

最佳答案

好吧,我没有解决原来的问题。但是由于我只想在文件更改时重新加载我的 Electron 渲染过程,所以我找到了另一种没有“Electron-Reload”的方法
在呈现我的主窗口的函数中,我添加了:

import {join} from 'path';
import {watch} from 'fs';

app.whenReady().then(()=>{
   watch('./Dist/Client/', (eventType, filename)=>{ win.reload(); })
} 
现在一切正常。

关于node.js - Webpack - 找不到模块 : Error: Can't resolve 'node_modules\chokidar\lib' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64388742/

相关文章:

javascript - 如何使用 promise 获得相同键值的总数?

node.js - Heroku webpack部署端口绑定(bind)错误

javascript - webpack 的“npm run build”,我收到错误...帮助我

使用 Electron 生成器的沙盒 Electron 应用程序

node.js - Nodejs(通用池): release the resource when catching an error

javascript - 如何正确拆分React应用程序组件

javascript - git Push heroku master 并挂起 Node.js 部署

Angular2+Webpack,在头部加载两次样式

reactjs - 错误: Object has been destroyed when trying to re-open a second BrowserWindow - Electron. js

javascript - system.js 加载脚本时如何要求 ('electron' )