fineui是帆软报表和BI产品线所使用的前端框架。
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

132 lines
3.8 KiB

const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const autoprefixer = require('autoprefixer');
const path = require('path');
const fs = require('fs');
const dirs = require('./dirs');
const attachments = require('./attachments');
let lessVariables = {};
if (process.env.LESS_CONFIG_PATH) {
const lessConfigPath = path.isAbsolute(process.env.LESS_CONFIG_PATH)
? process.env.LESS_CONFIG_PATH
: path.resolve(__dirname, '../', process.env.LESS_CONFIG_PATH);
lessVariables = fs.existsSync(lessConfigPath)
? require(lessConfigPath) || {}
: {};
}
module.exports = {
entry: {
demo: attachments.demo,
// 用于启动dev模式时,工程引用调试
fineui: attachments.fineui,
"fineui.proxy": attachments.fineuiProxy,
},
externals: {
lodash: '_',
underscore: '_',
},
resolve: {
mainFields: ['module', 'main'],
extensions: ['.js', '.ts'],
},
module: {
rules: [
{
test: /\.(js|ts)$/,
include: [dirs.NODE_MODULES, dirs.PRIVATE, dirs.TYPESCRIPT, dirs.ROUTER],
exclude: /node_modules(\/|\\)core-js/,
use: [
{
loader: 'babel-loader',
options: {
configFile: dirs.BABEL_CONFIG,
},
},
{
loader: 'source-map-loader',
options: {
enforce: 'pre',
},
},
],
},
{
test: /\.js$/,
include: [
dirs.DEMO,
dirs.SRC,
dirs.PUBLIC,
dirs.MOBILE,
dirs.I18N,
dirs.UI,
dirs.FIX,
],
use: [
{
loader: 'source-map-loader',
options: {
enforce: 'pre',
},
},
],
},
{
test: /\.js$/,
include: [path.resolve(__dirname, '../', attachments.lodash)],
use: [
{
loader: 'script-loader',
},
],
},
{
test: path.resolve(__dirname, '../', attachments.fix),
use: [
{
loader: 'expose-loader',
options: 'Fix',
},
],
}, {
test: path.resolve(__dirname, '../', attachments.fixProxy),
use: [
{
loader: 'expose-loader',
options: 'Fix',
},
],
},
{
test: /\.(css|less)$/,
use: [
MiniCssExtractPlugin.loader,
{
loader: 'css-loader',
options: {
url: false,
},
},
{
loader: 'postcss-loader',
options: {
plugins: [autoprefixer],
},
},
{
loader: 'less-loader',
options: {
relativeUrls: false,
modifyVars: lessVariables,
},
},
],
},
],
},
};