Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Webpack 2和awesome typescript loader的baseUrl和路径解析_Typescript_Webpack_Tsconfig_Webpack 2 - Fatal编程技术网

使用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
我的tsconfig中还包含以下内容:

"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()
    ]
}