Webpack resol.modules не работает в vscode с машинописью? - PullRequest
0 голосов
/ 01 декабря 2018

моя простая конфигурация веб-пакета:

const webpack = require('webpack');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const path = require('path');

const developmentMode = 'development'
const configFactory = () => {
  let plugins = [
    new webpack.DefinePlugin({
      __DEV__: developmentMode,
    }),
    new HtmlWebpackPlugin({
      template: path.resolve(process.cwd(), 'src/index.html'),
      inject: true,
    }),
  ]

  const config = {
    mode: developmentMode,
    entry: {
      app: path.resolve('./src/app/app.jsx'),
    },
    output: {
      filename: 'outputFileName',
      path: path.resolve('../dist'),
    },
    devtool: true,
    module: {
      rules: [
        {
          test: /\.tsx?$/,
          use: [
            {
              loader: require.resolve('ts-loader'),
            }
          ]

        },
      ],
    },
    resolve: {
      extensions: ['.ts', '.tsx', '.jsx', '.js'],
      modules: [path.resolve('node_modules'), path.resolve('src/lib')],
    },
    plugins,
  };
  return config
}

module.exports = configFactory;

мой tsconfig

{
    "compilerOptions": {
        "outDir": "",
        "jsx": "react",
        "target": "es5",
        "module": "es2015",
        "lib": [
            "es2015",
            "dom",
            "scripthost",
            "dom.iterable"
        ],
        "moduleResolution": "node",
        "sourceMap": true,
        "strict": true,
        "allowSyntheticDefaultImports": true,
        "esModuleInterop": true,
        "declaration": true,
        "allowJs": false,
        "baseUrl": "./src",
        // "paths": {
        //   "*": ["lib/*"]
        // }
    },
    "exclude": [
        "node_modules"
    ]
}

Я использовал в веб-пакете resol.modules.Конфигурация в веб-пакете следующая:

resolve: {
  extensions: ['.ts', '.tsx', '.jsx', '.js'],
  modules: [path.resolve('node_modules'), path.resolve('src/lib')],
},

src / lib / helios.ts следующим образом:

export default function() {
  return 'helios-lib'
}

я использую этот lib / helios с другимифайл следующим образом:

import helios from 'helios';

Это нормально во время выполнения, но VSCODE запрашивает [ts] Не удается найти модуль 'helios'.[2307] .

Текущее решение состоит в том, чтобы настроить пути в tsconfig следующим образом:

"paths": {
  "*": ["lib/*"]
}

Но сделать это - маленькие хитрости, которые не способствуют последующиммасштабируемость.

Есть ли хорошее решение?пожалуйста

  • версия webpack: 4.19.1
  • версия webpack-cli: 3.1.1
  • версия машинописного текста: 2.9.x
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...