javascript - kan ikke løse Kan ikke finde modulet 'rxjs' inden for typescript/webpack
Jeg har et problem med at indlæse rxjs i en simpel webpack-opsætning (uden Angular). Jeg kører:
./node_modules/.bin/webpack --config webpack.config.js --watch
at starte webpack. Den eneste fil med appen, src/app.ts, starter med:
import { Observable } from 'rxjs';
og denne linje er fremhævet i VSCode og i webpack-konsollen med denne fejl:
Cannot find module 'rxjs'.
Men det samlede output fungerer fint. Bare denne konsolfejl.
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 (alt installeret korrekt):
{
"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"
}
}
Jeg kan ikke finde årsagen til, hvorfor ts/webpack ikke kan finde ud af, hvor rxjs er
Svar #1
Du bør ændre standardmodulopløsningsstrategien fra Classic til Node. For at gøre dette skal du ændre din tsconfig.json-fil:
{
...
"compilerOptions": {
....
"moduleResolution": "node"
}
}
Se dokumentation om modulopløsning
Svar #2
til ionisk
brug bare denne kommando for at slette plugin'et
npm uninstall --save rxjs
npm uninstall --save rxjs-compat
og kør derefter dette for at geninstallere
npm install --save rxjs
npm install --save rxjs-compat
