标签: ts-loader

webpack 2 ts 加载器不排除规范文件

我正在尝试构建我自己的 angular2/webpack2 样板 这是我的设置

webpack.common.js

const webpack = require('webpack');
const CommonsChunkPlugin = require('webpack/lib/optimize/CommonsChunkPlugin');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');

const helpers = require('./helpers');

const METADATA = {
  title: 'Angular2 Webpack2 Starter by Whisher',
  baseUrl: '/',
  isDevServer: helpers.isWebpackDevServer()
};
module.exports = {
  devtool: 'cheap-module-source-map',
  entry: {
    'polyfills': './src/polyfills.ts',
    'vendor':    './src/vendor.ts',
    'main':      './src/main.ts'
  },
  resolve: {
    extensions: ['.ts', '.js', '.json']
  },
  module: {
    rules: [
      {
        test: /\.ts$/,
        loaders: [
          '@angularclass/hmr-loader',
          'awesome-typescript-loader',
          'angular2-template-loader',
          'angular-router-loader'
        ],
        exclude: [/\.(spec|e2e)\.ts$/]
      },
      {
        test: …
Run Code Online (Sandbox Code Playgroud)

ts-loader webpack-2 angular

5
推荐指数
0
解决办法
4498
查看次数

如何让无类型的 npm 模块与 webpack 完美配合

我收到Invalid module name in augmentation来自 webpack 的错误,用于*.d.ts包含在我的项目中的几个库文件。

一个例子来自leaflet-draw,它在d.ts文件的顶部有以下模块声明:

import * as L from 'leaflet';

declare module 'leaflet' {
    interface MapOptions {
        drawControl?: boolean;
    }
Run Code Online (Sandbox Code Playgroud)

完整的错误是:

扩充中的模块名称无效。模块 'leaflet' 解析为位于 'C:\Users***\Documents\GitHub***\node_modules\leaflet\dist\leaflet-src.js' 的无类型模块,无法扩充。

我不完全确定该怎么做,我不想修改 d.ts 文件本身,因为这些文件是在外部维护的。

我正在使用最新版本的 webpack (3.11.0) 和 ts-loader (3.5.0)。

我的 tsconfig 编译器选项如下:

"compilerOptions": {
        "target": "es5",
        "sourceMap": true,
        "outDir": "./dist",
        "rootDir": "../",
        "noImplicitAny": false,
        "noImplicitThis": false,
        "noUnusedLocals": false,
        "noUnusedParameters": false,
        "pretty": true,
        "removeComments": false,
        "allowUnreachableCode": false,
        "declaration": false,
        "allowJs": true,
        "module": "commonJs",
        "typeRoots" : ["./typings/index.d.ts", "../../node_modules/@types"] …
Run Code Online (Sandbox Code Playgroud)

commonjs leaflet typescript webpack ts-loader

5
推荐指数
1
解决办法
1016
查看次数

Webpack 不捆绑 TypeScript

我遇到了捆绑 TS 项目的问题。ts-loader 似乎无法识别 TypeScript 语法。

我收到的错误:

ERROR in ./src/common/components/chat/chatComponent.tsx
Module parse failed: The keyword 'interface' is reserved (10:0)
You may need an appropriate loader to handle this file type.
| import { ChatItemComponent, ChatMessageItem, isMessage, Props as Item } from "./chatItem";
|
| interface Props {
|   className?: string;
|   fullHistoryFetched?: boolean;
Run Code Online (Sandbox Code Playgroud)

ERROR in ./src/common/closer.tsx
Module parse failed: Unexpected token (10:13)
You may need an appropriate loader to handle this file type.
| import * as chatItem from …
Run Code Online (Sandbox Code Playgroud)

typescript webpack ts-loader

5
推荐指数
1
解决办法
2万
查看次数

Webpack + Typescript + watch仅在重新编译时导致错误TS2554

涉及的软件:

  • webpack 4.8.3
  • 打字稿2.8.3
  • ts-loader 4.3.0

Webpack配置:

rules: [
    {
        test: /\.ts(x?)$/,
        exclude: /node_modules/,
        use: ['ng-annotate-loader', 'ts-loader']
    },
    ...
]
Run Code Online (Sandbox Code Playgroud)

这可以在单个构建(webpack --mode development)编译我的项目.

但是,在手表模式下构建时会出现错误:

$ webpack --progress --watch --mode development
Webpack is watching the files…

Hash: e8f3fc158b2b6feaad07                                                                  
Version: webpack 4.8.3
Time: 75713ms
Built at: 05/15/2018 3:25:27 PM
          Asset       Size      Chunks             Chunk Names
          ...
Run Code Online (Sandbox Code Playgroud)

(构建很好.现在我更改了一个文件,并重建:)

[./ts/foo/foo.ts] 3.82 KiB {foo} [built] [1 error]
[./ts/foo/controllers/bar.ts] 3.8 KiB {baz} {foo} [built]
[./ts/foo/baz.ts] 4.21 KiB {baz} [built] [1 error] …
Run Code Online (Sandbox Code Playgroud)

node.js typescript webpack ts-loader

5
推荐指数
0
解决办法
329
查看次数

Ts-loader/webpack - 如何使用 webpack 解析工作文件夹之外的文件

我有一个项目恰好是 vs 代码扩展,但我认为这不太相关。

我有以下结构:

./package.json
./tsconfig.json --> references [ ./client, ./server, ./interfaces]

./client
   package.json
   tsconfig.json
   webpack.config.js
./server
   package.json
   tsconfig.json
   webpack.config.js
./interfaces
   package.json
   tsconfig.json
Run Code Online (Sandbox Code Playgroud)

客户端和服务器都从接口项目导入,它只包含一些由两者共享的类型、接口、枚举、命名空间等。对于它的价值,我不介意的WebPack复制到两个client.js和server.js捆绑这一点,但我希望复制/粘贴两者的代码。

当我运行我的 webpack 时,无论我从interfaces. 我应该注意到,正常通过tsc -b工程完美地构建。

TS2769:没有与此调用匹配的重载。重载 1 of 3, '(type: RequestType0<{}, unknown, unknown>, handler: RequestHandler0<{}, unknown>): void',出现以下错误。“RequestType”类型的参数不可分配给“RequestType0<{}, unknown, unknown>”类型的参数。属性“_”的类型不兼容。输入 '[MyType, MyOtherType, void, void, _EM] | undefined' 不能分配给类型 '[{}, unknown, unknown, _EM] | 不明确的'。类型“[MyType, MyOtherType, void, void, _EM]”不能分配给类型“[{}, unknown, unknown, _EM]”。属性“3”的类型不兼容。“void”类型不能分配给“_EM”类型。重载 2 of 3, '(type: RequestType, handler: RequestHandler): void',出现以下错误。“RequestType”类型的参数不可分配给“RequestType”类型的参数。类型具有私有属性“_method”的单独声明。重载 3 of …

typescript webpack ts-loader

5
推荐指数
0
解决办法
979
查看次数

ts-loader 导入 .json 文件时在子目录中输出声明文件

我的 ts-loader 有一个奇怪的行为:从 node_modules 导入 *.json 文件时,声明文件在以下子文件夹中生成dist/但我希望它们直接在该 dist/文件夹中。

\n

我有以下项目结构:

\n
Project/\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 src/ \n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 components/\n\xe2\x94\x82   \xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 PhoneNumberInput/\n\xe2\x94\x82   \xe2\x94\x82       \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 index.ts\n\xe2\x94\x82   \xe2\x94\x82       \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 utils.ts\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 index.ts\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 package.json\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 tsconfig.json\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 webpack.config.js\n
Run Code Online (Sandbox Code Playgroud)\n

运行时webpack(使用ts-loader)我期望以下输出文件夹结构:

\n
Project/\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 dist/ \n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 components/\n\xe2\x94\x82   \xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 PhoneNumberInput/\n\xe2\x94\x82   \xe2\x94\x82       \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 index.d.ts\n\xe2\x94\x82   \xe2\x94\x82       \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 utils.d.ts\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 index.d.ts\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 index.js\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ...\n
Run Code Online (Sandbox Code Playgroud)\n

情况就是这样,直到我开始node_modules/在我的应用程序中导入 .json (来自 )文件utils.ts

\n
Project/\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 src/ \n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 components/\n\xe2\x94\x82   \xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 PhoneNumberInput/\n\xe2\x94\x82   \xe2\x94\x82       \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 index.ts\n\xe2\x94\x82 …
Run Code Online (Sandbox Code Playgroud)

json typescript webpack ts-loader

5
推荐指数
1
解决办法
1986
查看次数

ts-loader(webpack)上挂着的“ npm run”

我正在Mac OS X 10.11.3上使用webpack构建一个包含静态HTML和其他资产的Web应用程序。该应用程序与另一台服务器上的API通讯。

我在使用webpack构建应用程序时遇到问题。构建过程似乎挂在ts-loader执行过程中或周围。我正在运行这样的构建:

npm run go --loglevel verbose
Run Code Online (Sandbox Code Playgroud)

从我的package.json中执行以下命令:

./node_modules/.bin/webpack-dev-server --display-reasons --display-chunks --watch
Run Code Online (Sandbox Code Playgroud)

终端窗口中的输出以结尾

ts-loader: Using typescript@1.7.5 and /Users/mn/Documents/source/J/appstore/store-front/app/ts/tsconfig.json
Run Code Online (Sandbox Code Playgroud)

我尝试删除node_modules文件夹并重新安装它们;我尝试卸载webpack并重新安装;我已经尝试将webpack.config.js还原为我知道可以使用的版本;但它只是挂在这里!

我的webpack.config.js看起来像这样:

var webpack = require('webpack'),
    ReloadPlugin = require('webpack-reload-plugin'),
    path = require('path'),
    ChunkManifestPlugin = require('chunk-manifest-webpack-plugin'),
    HtmlWebpackPlugin = require('html-webpack-plugin'),
    WebpackNotifierPlugin = require('webpack-notifier'),
    ExtractTextPlugin = require("extract-text-webpack-plugin");

/**
 * optimist has been depracted. Find an alternative? minimist?  
 */
var argv = require('optimist')
    .alias('r', 'release').default('r', false)
    .argv;

/**
 * Useful variables
 */
var cwd = process.cwd();
var DEBUG = !argv.release;
var isDevServer = …
Run Code Online (Sandbox Code Playgroud)

node.js typescript webpack visual-studio-code ts-loader

4
推荐指数
1
解决办法
1581
查看次数

Webpack ts-loader:更改tsconfig文件名

我有2个tsconfigs,一个用于我的开发构建,一个用于我的prod构建.
我选择带有-p标志的tsconfig :
tsc -p dev.tsconfig.json

Ts-loader正在寻找一个tsconfig.json文件.如何使用ts-loader指定另一个文件名?

module.exports = {
    entry : __dirname + "/src/app/main.ts",
    output : {
        path : __dirname + "/dist",
        filename : "bundle.js"
    },
   resolve : {
     extensions : ["", ".webpack.js", ".web.js", ".js", ".ts"]
   },
   module: {
        loaders: [
            { test: /\.ts?$/, loader: "ts" }
        ]
    }
};
Run Code Online (Sandbox Code Playgroud)

typescript tsconfig webpack ts-loader

4
推荐指数
5
解决办法
9608
查看次数

带ts-loader的webpack线程加载器

我的webpack配置中有以下规则:

       {
            test: /(\.tsx?)$/,
            use: [{
                loader: 'thread-loader'
            },
            {
                loader: 'ts-loader',
                options: {
                    transpileOnly: true,
                    appendTsSuffixTo: [/\.vue$/]
                }
            }]
        }
Run Code Online (Sandbox Code Playgroud)

结果是:

ERROR in ./plugins/axios.ts
Module build failed (from ./node_modules/thread-loader/dist/cjs.js):
Thread Loader (Worker 9)
Cannot read property 'errors' of undefined
Run Code Online (Sandbox Code Playgroud)

当我删除线程加载器时,它工作正常。

typescript webpack ts-loader

4
推荐指数
1
解决办法
941
查看次数

为什么 webpack --watch 在不相关的文件上调用我的自定义加载器?

我有一个简单的自定义 Webpack 加载器,它从.txt文件生成 TypeScript 代码:

txt-loader.js

module.exports = function TxtLoader(txt) {
  console.log(`TxtLoader invoked on ${this.resourcePath} with content ${JSON.stringify(txt)}`)
  if (txt.indexOf('Hello') < 0) {
    throw new Error(`No "Hello" found`)
  }
  return `export const TEXT: string = ${JSON.stringify(txt)}`
}
Run Code Online (Sandbox Code Playgroud)

在现实生活中,我会对输入进行一些解析;在此示例中,我们假设文件必须包含Hello有效的文本。

该加载程序允许我导入文本文件,如下所示:

索引.ts

import { TEXT } from './hello.txt'

console.log(TEXT)
Run Code Online (Sandbox Code Playgroud)

一切都很好,除了一件事:(webpack watch及其表弟webpack serve)。第一个编译很好:

$ /tmp/webpack-loader-repro/node_modules/.bin/webpack watch
TxtLoader invoked on /tmp/webpack-loader-repro/hello.txt with content "Hello world!\n"
asset main.js 250 bytes [compared for emit] [minimized] (name: main)
./index.ts …
Run Code Online (Sandbox Code Playgroud)

typescript webpack ts-loader webpack-watch webpack-loader

3
推荐指数
1
解决办法
1497
查看次数