У меня есть два webpack
файла конфигурации
webpack1.config.js
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const path = require('path');
const config = {
entry: [
'./app/App1/App1.ts'
],
output: {
path: path.resolve('', 'web/assets/js'),
filename: 'app1.js'
},
resolve: {
extensions: [".ts", ".tsx", ".vue", ".js"],
modules: [
path.resolve('./app'),
path.resolve('./node_modules')
],
alias: {
'vue$': 'vue/dist/vue.esm.js'
},
},
module: {
rules: [
{
test: /\.ts?$/,
loader: 'ts-loader',
exclude: /node_modules/,
options: {
appendTsSuffixTo: [/\.vue$/]
}
},
{
test: /\.vue?$/,
loader: 'vue-loader',
exclude: /node_modules/,
options: {
esModule: true
}
}
]
},
};
module.exports = config;
webpack2.config.js
const path = require('path');
const config = {
entry: [
'./app/App2/App2.ts'
],
output: {
path: path.resolve('', 'web/assets/js'),
filename: 'app2.js'
},
resolve: {
extensions: [".ts", ".tsx", ".vue", ".js"],
modules: [
path.resolve('./app'),
path.resolve('./node_modules')
],
alias: {
'vue$': 'vue/dist/vue.esm.js'
},
},
module: {
rules: [
{
test: /\.ts?$/,
loader: 'ts-loader',
exclude: /node_modules/,
options: {
appendTsSuffixTo: [/\.vue$/]
}
},
{
test: /\.vue?$/,
loader: 'vue-loader',
exclude: /node_modules/,
options: {
esModule: true
}
}
]
},
};
module.exports = config;
Теперь, когда я компилирую app1
, используя webpack1.config.js
, он выдает ошибку Последующие объявления свойств должны иметь тот же тип. Свойство 'user' должно иметь тип 'IUser', но здесь имеет тип 'IUser'.
Потому что в App1.ts
у меня есть следующая строка
import IUser from 'IUser'; // /app/App1/IUser.ts
...
user:IUser;
...
А App2.ts
имеет
import IUser from 'IUser'; // /app/App2/IUser.ts
...
user:IUser;
...
Проблема в том, что местоположение app/App2
также содержит IUser
интерфейс, но как я могу сказать от webpack1.config.js
до stop , глядя на app/App2
местоположения?
Я уже пробовал что-то вроде
``
test: /\.ts?$/,
loader: 'ts-loader',
exclude: [/node_modules/, /app\/App2/], // so maybe try to omit App2?
options: {
appendTsSuffixTo: [/\.vue$/]
}
Поэтому я попытался исключить app/App2
, но это не помогло, и я все еще вижу эту ошибку.
У меня последняя версия TypeScript и забавная, потому что она все время работала нормально, и вдруг эта ошибка появилась сегодня (я ничего не обновлял, просто пытался скомпилировать проект, как обычно).