使用Webpack 2和awesome typescript loader的baseUrl和路径解析
我想设置我的项目,以便在任何地方使用以下行:使用Webpack 2和awesome typescript loader的baseUrl和路径解析,typescript,webpack,tsconfig,webpack-2,Typescript,Webpack,Tsconfig,Webpack 2,我想设置我的项目,以便在任何地方使用以下行: import { BlahBlahService } from '@blahblah/core/BlahBlahService'; 决定: /dist/blahblah/core/blahblah服务 我已经阅读了在线资源并应用了指导设置(我也包括在下面)。这是在VisualStudio代码中工作的;i、 e.它没有向我显示错误,因此它能够正确读取我在tsconfig的设置并理解它。我想让同样的事情发生在Webpack上 但是,我得到以下错误: .
import { BlahBlahService } from '@blahblah/core/BlahBlahService';
决定:
/dist/blahblah/core/blahblah服务
我已经阅读了在线资源并应用了指导设置(我也包括在下面)。这是在VisualStudio代码中工作的;i、 e.它没有向我显示错误,因此它能够正确读取我在tsconfig的设置并理解它。我想让同样的事情发生在Webpack上
但是,我得到以下错误:
./xxxxxxxxxx.ts中出现错误
未找到模块:错误:无法解析“xxxxxxxxxxxxxxxxxxxx”中的“@blahblah/core/BlahBlahService”
我的web应用程序中有以下设置:
- Angular 2版本2.2.0
- Typescript版本2.0.8
- 网页包版本2.1.0-beta.26
- 很棒的typescript加载程序版本2.2.4
"compilerOptions": {
...
"baseUrl": ".",
"paths": {
"@blahblah/core": ["./dist/blahblah/core"],
"@blahblah/core/*": ["./dist/blahblah/core/*"],
}
...
}
我的webpack.js文件中有以下设置:
plugins: [
...
new TsConfigPathsPlugin(),
...
],
我也有同样的问题。它应该能工作,但不能 我的解决方法是向package.json添加“browser”属性,使用与tsconfig中相同的别名 package.json
{
"name": "app",
...
"browser": {
"@blahblah/core": ["./dist/blahblah/core"],
"@blahblah/core/*": ["./dist/blahblah/core/*"]
},
"scripts": { ... },
...
}
我目前正在使用
webpack@3.10
和网页包开发-server@2.9.7
同样的问题。我找到了解决办法 tsconfig.js:
"compilerOptions": {
...
"baseUrl": ".",
"paths": {
"~/*": ["./src"],
}
}
webpack.config.js:
尝试将typescript的版本升级到2.1。据我所知,它应该没有插件就可以工作。我还没有尝试过这个,但我还是同意给你奖金,因为它即将过期。我会尝试一下,如果它解决了我的问题,我会让你知道。谢谢。你让他知道了吗?如果你把“路径”从tsconfig复制到webpack的resolve.alias,应该可以。这不是一个很好的解决方案,但是我相信它有一个插件“TsConfigPathsPlugin”。需要说明的是,
别名
似乎不是必需的。问题是,添加插件的那一行,new TsConfigPathsPlugin()
,需要位于resolve
块下。不仅仅是主选项对象下的plugins
,还有resolve.plugins
。
var TsConfigPathsPlugin = require('awesome-typescript-loader').TsConfigPathsPlugin;
resolve: {
alias: {
"~/": "./src"
},
plugins: [
new TsConfigPathsPlugin()
]
}