javascript - 获取错误 : Cannot find module "." at webpackMissingModule

标签 javascript node.js express webpack pug

我正在尝试对 express 应用程序进行 webpack,但无论我在何处尝试检索/页面,都会遇到以下问题:

Getting Error: Cannot find module "." at webpackMissingModule

这是重现此内容的代码:

import express from 'express';

const app = express();
const port = 8088;

app.set('view engine', 'pug')

app.listen(port, () => console.log(`Listening on ${port}`));

app.get('/', (req, res) => {
    res.render('index');
});

最初我认为这是因为 pug 没有包含在模块中,所以我尝试在页面中添加 require('pug') 但这只是将错误转移到服务器启动而不是运行时。

这是我的 webpack 配置:

const path = require('path');
module.exports = {
    entry: {
        index: path.join(__dirname, 'index.js')
    },
    target: 'node',
    module: {
        rules: [
            {
                test: /\.js$/,
                loader: 'babel-loader',
                include: [
                    __dirname
                ],
                exclude: /node_modules/
            }
        ]
    },
    resolve: {
        modules: [__dirname, 'node_modules']
    },
    output: {
        path: __dirname,
        filename: '[name].entry.js'
    }
}

我正在使用 express 4.16、pug 2.0-rc4、webpack 3.8 和 babel loader 7.1

我也尝试过包含所有 Node 模块,但随后出现不同的错误(dP.f 不是函数)

最佳答案

那是因为虽然您将 node_modules 排除在 babel 编译之外,但它们仍包含在您的包中。

您还需要忽略 node_modules 被包含到您的包中。

安装 webpack-node-externals

npm install webpack-node-externals --save-dev

并在您的 webpack 配置中添加两行。

const path = require('path');
const nodeExternals = require('webpack-node-externals'); //include this

module.exports = {
    entry: {
        index: path.join(__dirname, 'index.js')
    },
    target: 'node',
    module: {
        rules: [
            {
                test: /\.js$/,
                loader: 'babel-loader',
                include: [
                    __dirname
                ],
                exclude: /node_modules/
            }
        ]
    },
    resolve: {
        modules: [__dirname, 'node_modules']
    },
    externals: [nodeExternals()], // just add this
    output: {
        path: __dirname,
        filename: '[name].entry.js'
    }
}

关于javascript - 获取错误 : Cannot find module "." at webpackMissingModule,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47452820/

相关文章:

javascript - 如何使用discord.js获取用户当前的语音 channel ?

javascript - 如何调试从 CoffeeScript 生成的 Node.js/JavaScript 代码?

node.js - 如何使用expressjs加入Firebase中的两个集合?

javascript - Nodejs 运行 Promise 但仍然 Undefine 不是一个函数

javascript - 使用回调 Javascript 在多个函数中获取多个数据

javascript - 突出显示闪烁浏览器选项卡/窗口

javascript - 具有非线性步骤的 JQuery UI slider

javascript - setState(...) : Can only update a mounted or mounting component. 这通常意味着您在未安装的组件上调用了 setState()

javascript - 模态下方的面板或模态

node.js - ExpressJS : Request has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource