在 webpack 4 中使用 moment.js 和 ts-loader
Use moment.js with ts-loader in webpack 4
无论我尝试什么,在使用 webpack4 构建时,我都无法 moment.js 加载到 TypeScript 文件中。
[tsl] ERROR in /app/Repository/JFFH.Site/Resources/Private/JavaScript/Angular/schedule/schedule.component.ts(18,30)
npm_1 | TS2694: Namespace '"/app/Repository/JFFH.Site/Resources/Private/node_modules/moment/moment".export=' has no exported member 'Moment'.
我正在尝试运行的 TypeScript 文件:
import * as moment from "moment";
interface IEvent {
title: string;
startTime: string;
startTimeObject?: moment.Moment;
我的tsconfig.json:
{
"compilerOptions": {
"outDir": "./dist/",
"noImplicitAny": true,
"module": "es6",
"target": "es5",
"jsx": "react",
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
"allowJs": true
}
}
我的 Webpack4 规则:
{
test: /\.tsx?$/,
exclude: [/node_modules/, /Packages/],
use: {
loader: 'ts-loader'
}
},
{
test: /\.js$/,
exclude: [/core-js/, /@babel\/runtime/],
use: {
loader: 'babel-loader'
}
},
这似乎是 ts-loader
的问题。
我发现它可以省略,因为 babel-loader
现在可以理解 typescript,它可以工作。
无论我尝试什么,在使用 webpack4 构建时,我都无法 moment.js 加载到 TypeScript 文件中。
[tsl] ERROR in /app/Repository/JFFH.Site/Resources/Private/JavaScript/Angular/schedule/schedule.component.ts(18,30)
npm_1 | TS2694: Namespace '"/app/Repository/JFFH.Site/Resources/Private/node_modules/moment/moment".export=' has no exported member 'Moment'.
我正在尝试运行的 TypeScript 文件:
import * as moment from "moment";
interface IEvent {
title: string;
startTime: string;
startTimeObject?: moment.Moment;
我的tsconfig.json:
{
"compilerOptions": {
"outDir": "./dist/",
"noImplicitAny": true,
"module": "es6",
"target": "es5",
"jsx": "react",
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
"allowJs": true
}
}
我的 Webpack4 规则:
{
test: /\.tsx?$/,
exclude: [/node_modules/, /Packages/],
use: {
loader: 'ts-loader'
}
},
{
test: /\.js$/,
exclude: [/core-js/, /@babel\/runtime/],
use: {
loader: 'babel-loader'
}
},
这似乎是 ts-loader
的问题。
我发现它可以省略,因为 babel-loader
现在可以理解 typescript,它可以工作。