无法解析无法在typescript/webpack中找到模块'rxjs'

duc*_*cin 10 javascript rxjs typescript webpack es6-modules

我有一个问题,加载rxjs到一个简单的webpack设置(没有角度).我在跑:

./node_modules/.bin/webpack --config webpack.config.js --watch
Run Code Online (Sandbox Code Playgroud)

启动webpack.应用程序的唯一文件src/app.ts,以:

import { Observable } from 'rxjs';
Run Code Online (Sandbox Code Playgroud)

并且此行在VSCode和webpack控制台中突出显示,并显示以下错误:

Cannot find module 'rxjs'.
Run Code Online (Sandbox Code Playgroud)

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

tsconfig.json:

{
    "compilerOptions": {
         "target": "es2015"
    },
    "files": [
        "src/app.ts"
    ]
}
Run Code Online (Sandbox Code Playgroud)

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" }
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

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"
  }
}
Run Code Online (Sandbox Code Playgroud)

我找不到为什么ts/webpack不能解决的原因 rxjs

小智 14

离子

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

npm uninstall --save rxjs

npm uninstall --save rxjs-compat
Run Code Online (Sandbox Code Playgroud)

然后运行它重新安装

npm install --save rxjs

npm install --save rxjs-compat
Run Code Online (Sandbox Code Playgroud)


Ole*_*luk 13

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

{
    ...
    "compilerOptions": {
        ....
        "moduleResolution": "node"
    }
}
Run Code Online (Sandbox Code Playgroud)

请参阅模块分辨率的文档

  • 好吧,我不知道OP,但你救了我几个小时:D谢谢! (3认同)

ena*_*upe 0

您必须添加node_modules到您的 webpackresolve.modules 配置中:

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

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