моя простая конфигурация веб-пакета:
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