1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/frederick-wang-scu-urp-assistant

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
webpack.config.js 4.8 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Zhaoji Wang Отправлено 13.12.2021 02:29 6ddc15d
require('dotenv').config({
path: `.env.${process.env.NODE_ENV || 'development'}`
})
const path = require('path')
const { CleanWebpackPlugin } = require('clean-webpack-plugin')
const TerserPlugin = require('terser-webpack-plugin')
const webpack = require('webpack')
const VueLoaderPlugin = require('vue-loader/lib/plugin')
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer')
.BundleAnalyzerPlugin
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
module.exports = env => {
const devConfig = {
devtool: 'inline-source-map',
devServer: {
overlay: true,
disableHostCheck: true,
publicPath: '/'
}
}
const prodConfig = {
optimization: {
minimize: true,
minimizer: [new TerserPlugin()],
concatenateModules: true
}
}
return {
...(env.development ? devConfig : {}),
...(env.production ? prodConfig : {}),
target: 'web',
entry: {
'scu-urp-assistant.user': './src/scu-urp-assistant.user.ts',
'scu-urp-assistant.bookmarklet': './src/scu-urp-assistant.bookmarklet.ts'
},
plugins: [
// new webpack.DefinePlugin({
// 'process.env.API_PATH': `'${process.env.API_PATH}'`,
// 'process.env.API_PATH_V2': `'${process.env.API_PATH_V2}'`
// }),
new CleanWebpackPlugin(),
new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery'
}),
new VueLoaderPlugin(),
...(env.analyze ? [new BundleAnalyzerPlugin()] : [])
],
output: {
filename: '[name].js',
path: path.resolve(__dirname, 'dist'),
environment: {
arrowFunction: false,
bigIntLiteral: false,
const: false,
destructuring: false,
dynamicImport: false,
forOf: false,
module: false
}
},
module: {
rules: [
{
test: /\.vue$/,
loader: 'vue-loader'
},
{
test: /\.(ts|js)x?$/,
exclude: /(node_modules|bower_components)/,
use: {
loader: 'babel-loader'
}
},
{
test: /\.scss$/i,
oneOf: [
// 这条规则应用到 Vue 组件内的
{
resourceQuery: /^\?vue/,
use: [
'vue-style-loader',
{
loader: 'css-loader',
options: {
importLoaders: 2,
esModule: false
}
},
'postcss-loader',
{
loader: 'sass-loader',
options: {
sassOptions: { outputStyle: 'expanded' }
}
}
]
},
{
use: [
'to-string-loader',
{
loader: 'css-loader',
options: {
importLoaders: 2,
esModule: false
}
},
'postcss-loader',
{
loader: 'sass-loader',
options: {
sassOptions: {
outputStyle: 'expanded'
}
}
}
]
}
]
},
{
test: /\.css$/i,
oneOf: [
// 这条规则应用到 Vue 组件内的
{
resourceQuery: /^\?vue/,
use: [
'vue-style-loader',
{
loader: 'css-loader',
options: {
importLoaders: 1,
esModule: false
}
},
'postcss-loader'
]
},
{
use: [
'to-string-loader',
{
loader: 'css-loader',
options: {
importLoaders: 1,
esModule: false
}
},
'postcss-loader'
]
}
]
},
{
test: /\.pug$/i,
oneOf: [
// 这条规则应用到 Vue 组件内的 `<template lang="pug">`
{
resourceQuery: /^\?vue/,
use: ['pug-plain-loader']
},
// 这条规则应用到 JavaScript 内的 pug 导入
{
use: ['babel-loader', 'pug-loader']
}
]
},
{
test: /\.(ttf|eot|woff|woff2)$/i,
use: 'null-loader'
}
]
},
resolve: {
alias: {
'@': path.resolve('src')
},
extensions: ['.wasm', '.mjs', '.js', '.jsx', '.json', '.ts', '.tsx'],
fallback: {
path: false
}
}
}
}

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/frederick-wang-scu-urp-assistant.git
git@api.gitlife.ru:oschina-mirror/frederick-wang-scu-urp-assistant.git
oschina-mirror
frederick-wang-scu-urp-assistant
frederick-wang-scu-urp-assistant
dev