首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未找到Typescript模块,但webpack仍在构建捆绑包

未找到Typescript模块,但webpack仍在构建捆绑包
EN

Stack Overflow用户
提问于 2016-06-20 21:34:29
回答 1查看 363关注 0票数 0

我已经将我看到的一个问题简化为两个简单的库:

我正在尝试创建两个不同的库-一个是较低级别的库,另一个是较高级别的库,就向开发人员公开的概念而言。

两者都是使用Typescript编写的,并且都是使用webpack构建的。这两种设计都可以在Node和web应用程序中使用。

我遇到的问题是,我基本上将Node构建作为“默认”构建,可以说,web构建是特例。在较高级别的库中,我将较低级别的库设置为package.json中的依赖项,然后导入捆绑的web构建。这看起来是可行的,但是输出了一个错误。

这是“低级”库:https://github.com/hamchapman/typescript-lib-webpack-test

这是“更高级别”的库:https://github.com/hamchapman/typescript-lib-webpack-sdk-test

需要在两个平台之间进行更改的模块是websocket库: Node设置中的faye websocket和web设置中的浏览器Websocket。我已经使用了这个配置设置(在较低级别的库中)的webpack完成了这项工作:

代码语言:javascript
复制
const path = require('path')

module.exports = {
  entry: './src/client',
  output: {
    library: 'MultiPlatformClient',
    libraryTarget: 'umd',
    filename: "target/web.js"
  },
  devtool: 'source-map',
  resolve: {
    extensions: ['', '.webpack.js', '.web.js', '.ts', '.tsx', '.js'],
    modulesDirectories: ['node_modules', 'transports'],
    alias: {
      'ws': 'ws.web'
    }
  },

  module: {
    loaders: [
      { test: /\.tsx?$/, loader: 'ts-loader' }
    ],
    preLoaders: [
      { test: /\.js$/, loader: 'source-map-loader', exclude: /node_modules/ }
    ]
  }
}

然后,在client.ts中需要它,如下所示

代码语言:javascript
复制
import WebSocket from "ws";

export default class Client {
  public token: string
  public ws: WebSocket

  constructor(token: string) {
    this.token = token
    this.ws = new WebSocket('ws://test.com', [], {})
  }
}

在较低级别的库中,这一切都很好,并且构建成功,没有任何错误。

但是,这是在更高级别库的package.json中:

代码语言:javascript
复制
  "dependencies": {
    "node-libs-browser": "^1.0.0",
    "multi-platform-client": "git+ssh://git@github.com:hamchapman/typescript-lib-webpack-test.git"
  }

sdk-client.ts文件中包含以下内容:

代码语言:javascript
复制
import Client from "multi-platform-client/web";

export default class SDKClient {
  public client: Client

  constructor(token: string) {
    this.client = new Client(token)
  }
}

当我运行webpack时,我会得到以下输出:

代码语言:javascript
复制
 webpack
ts-loader: Using typescript@1.8.10 and /Users/Hami/Pusher/typescript-higher-test/tsconfig.json
Hash: 8fef5a551de36ef9403c
Version: webpack 1.13.1
Time: 1633ms
               Asset     Size  Chunks             Chunk Names
    ./dist/bundle.js  4.67 kB       0  [emitted]  main
./dist/bundle.js.map  5.61 kB       0  [emitted]  main
    + 4 hidden modules

ERROR in ./src/sdk-client.ts
(1,20): error TS2307: Cannot find module 'multi-platform-client/web'.

虽然会显示此错误,但构建仍然成功。

这是没有正确指定类型的问题吗?或者完全是别的什么东西?

EN

回答 1

Stack Overflow用户

发布于 2016-06-21 05:20:02

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37923977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档