73 lines
1.7 KiB
JavaScript
73 lines
1.7 KiB
JavaScript
const path = require('path');
|
|
const HtmlWebpackPlugin = require('html-webpack-plugin');
|
|
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
|
|
const request = require("request");
|
|
|
|
module.exports = {
|
|
entry: {
|
|
AVideo: './src/App.ts'
|
|
},
|
|
output: {
|
|
path: path.resolve(__dirname, 'dist'),
|
|
filename: '[name].min.js'
|
|
},
|
|
devServer: {
|
|
contentBase: path.join(__dirname, 'dist'),
|
|
compress: true,
|
|
port: 9000,
|
|
allowedHosts: [
|
|
'txmov2.a.yximgs.com'
|
|
],
|
|
before(app) {
|
|
app.all('*', function (req, res, next) {
|
|
res.header('Access-Control-Allow-Origin', '*');
|
|
res.header('Access-Control-Allow-Headers', 'Content-Type');
|
|
res.header('Access-Control-Allow-Methods', '*');
|
|
next();
|
|
});
|
|
|
|
app.get('/check/url', async function(req, res) {
|
|
const options = { url: req.query.url, headers: { range: 'bytes=0-50' } };
|
|
request(options, async (error, response, body) => {
|
|
await res.json({ result: response.headers['content-type'] });
|
|
});
|
|
});
|
|
}
|
|
},
|
|
resolve: {
|
|
extensions: ['.ts', '.js', '.json']
|
|
},
|
|
module: {
|
|
rules: [
|
|
{
|
|
test: /\.tsx?$/,
|
|
use: { loader: 'ts-loader' }
|
|
},
|
|
{
|
|
test: /\.less$/,
|
|
use: [
|
|
{
|
|
loader: MiniCssExtractPlugin.loader,
|
|
options: {
|
|
publicPaht: '../'
|
|
}
|
|
},
|
|
'css-loader', 'less-loader'
|
|
]
|
|
},
|
|
{
|
|
test: /\.pug$/,
|
|
use: ["pug-loader"]
|
|
},
|
|
]
|
|
},
|
|
plugins: [
|
|
new HtmlWebpackPlugin({
|
|
template: path.join(__dirname, './src/index.pug')
|
|
}),
|
|
new MiniCssExtractPlugin({
|
|
filename: '[name].min.css'
|
|
})
|
|
]
|
|
};
|