【问题标题】:can't resolve Cannot find module 'rxjs' within typescript/webpack无法解决在 typescript/webpack 中找不到模块“rxjs”
【发布时间】:2017-11-06 17:37:11
【问题描述】:

我在将 rxjs 加载到一个简单的 webpack 设置(没有角度)时遇到了问题。我在跑步:

./node_modules/.bin/webpack --config webpack.config.js --watch

启动 webpack。该应用程序的唯一文件src/app.ts 开头为:

import { Observable } from 'rxjs';

这一行在 VSCode 和 webpack 控制台中突出显示,并出现此错误:

Cannot find module 'rxjs'.

但整体输出效果很好。只是这个控制台错误。

tsconfig.json:

{
    "compilerOptions": {
         "target": "es2015"
    },
    "files": [
        "src/app.ts"
    ]
}

webpack.config.js:

module.exports = {
    entry: "./src/app.ts",
    output: {
        filename: "dist/bundle.js"
    },
    resolve: {
        // Add '.ts' and '.tsx' as a resolvable extension.
        extensions: [".webpack.js", ".web.js", ".ts", ".tsx", ".js"]
    },
    module: {
        loaders: [
            // all files with a '.ts' or '.tsx' extension will be handled by 'ts-loader'
            { test: /\.ts?$/, loader: "ts-loader" }
        ]
    }
}

package.json(一切安装正确):

{
  "scripts": {
    "start": "./node_modules/.bin/webpack --config webpack.config.js --watch"
  },
  "devDependencies": {
    "ts-loader": "^2.1.0",
    "typescript": "^2.3.4",
    "webpack": "^2.6.1",
    "webpack-dev-server": "^2.4.5"
  },
  "dependencies": {
    "bootstrap": "^3.3.7",
    "rxjs": "^5.4.0"
  }
}

找不到 ts/webpack 无法解析rxjs在哪里的原因

【问题讨论】:

    标签: javascript typescript webpack rxjs es6-modules


    【解决方案1】:

    您必须将 node_modules 添加到您的 webpack resolve.modules 配置中:

     resolve: {
        modules: [
          "node_modules",
          path.resolve(__dirname, "app")
        ],
        extensions: [".js", ".json", ".jsx", ".css"],
     }
    

    更多信息https://webpack.js.org/configuration/resolve/

    【讨论】:

    • 这对我来说没有多大意义; docsresolve.modules 默认为 "node_modules",所以我不用添加它,我只是不改变它。而且我不必在那里添加"app",因为为什么?
    【解决方案2】:

    您应该将默认模块解析策略从 Classic 更改为 Node。为此,请更改您的 tsconfig.json 文件:

    {
        ...
        "compilerOptions": {
            ....
            "moduleResolution": "node"
        }
    }
    

    请参阅Module Resolution 上的文档

    【讨论】:

    • 好吧,我不了解 OP,但您为我节省了一些时间:D 谢谢!
    • 它对我有用 "module": "commonjs" 并将 VSCode 更新到最新版本。但是,如果它对某人有所帮助-那很好:)
    【解决方案3】:

    去离子

    简单地使用这个命令来删除插件

    npm uninstall --save rxjs
    
    npm uninstall --save rxjs-compat
    

    然后运行这个重新安装

    npm install --save rxjs
    
    npm install --save rxjs-compat
    

    【讨论】:

      猜你喜欢
      • 2017-09-21
      • 1970-01-01
      • 2022-06-13
      • 2016-12-10
      • 2017-07-10
      • 2017-10-15
      • 1970-01-01
      • 2020-10-08
      相关资源
      最近更新 更多