【问题标题】:Error: Cannot find module "." mongodb with webpack and typescript错误:找不到模块“。”带有 webpack 和 typescript 的 mongodb
【发布时间】:2017-09-08 22:55:38
【问题描述】:

当我可以将 mongoose 与 webpack 一起使用时,我遇到了问题。我已经将它安装为依赖项,但是当我想使用 mongoose 对象并执行它时,它命令我找不到“。”模块。而且好像很奇怪,找了好久,重新安装依赖,删除npm缓存,重新安装webpack

非常感谢您的支持,非常感谢您

webpack.config.js

var path = require("path");

var typescriptLoader = {
    test: /\.ts$/,
    loader: 'ts-loader'
};

module.exports = {
    entry: "./src/main.ts",
    target: "node",
    output: {
        path: path.resolve(__dirname, "dist"),
        publicPath: "dist/",
        filename: "main.js"
    },
    node: {
        __filename: true,
        __dirname: true
    },
    watch: true,
    devServer: {
        contentBase: path.join(__dirname, "public_html"),
        watchContentBase: true
    },
    module: {
        rules: [ typescriptLoader ]
    },
    resolve: {
        extensions: [ '.js', '.ts' ]
    },
    externals: {

    }
}

package.json

{
  "name": "",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "watch": "webpack --config webpack.config.js -p",
    "start": "node dist/main.js"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "karma": "^1.5.0",
    "ts-loader": "^2.0.1",
    "typescript": "^2.2.1",
    "webpack": "^2.2.1"
  },
  "dependencies": {
    "@types/core-js": "^0.9.39",
    "@types/helmet": "0.0.34",
    "@types/mongoose": "^4.7.10",
    "@types/node": "^7.0.11",
    "body-parser": "^1.17.1",
    "cheerio": "^0.22.0",
    "express": "^4.15.2",
    "helmet": "^3.5.0",
    "mongoose": "^4.9.4",
  }
}

index.ts

import * as mongoose     from 'mongoose'; // ALL OK

console.log(mongoose); // Error when is used

错误

var n;n="undefined"==typeof window?!function(){var e=new Error('Cannot find module "."');throw e.code="MODULE_NOT_FOUND",e}():r(204),/*!
                                                                                             ^
Error: Cannot find module "."

【问题讨论】:

    标签: node.js typescript mongoose webpack


    【解决方案1】:

    你的猫鼬是 npm 模块。 TypeScript 可能无法识别您导入它的方式。试试 nodejs 的 require 模块加载系统。

    var mongoose  = require('mongoose');
    

    const mongoose  = require('mongoose');
    

    【讨论】:

    • 不,这不是问题所在。发生的情况是,当 webpack 打包所有依赖项由于某种原因不包括 mongoose 并且在任何情况下应该说 “无法加载模块:mongoose” 而不是说 “不能加载模块:。”这很奇怪
    猜你喜欢
    • 2016-11-10
    • 2021-09-13
    • 1970-01-01
    • 2019-05-17
    • 2015-11-10
    • 2017-03-02
    • 1970-01-01
    • 2021-10-01
    • 2016-07-23
    相关资源
    最近更新 更多