@dolphinweex/weex-bindingx
Version:
bindingx,expression,binding,weex
144 lines (135 loc) • 3.44 kB
JavaScript
const webpack = require('webpack');
const RaxPlugin = require('rax-webpack-plugin');
const UglifyJsPlugin = require('uglifyjs-webpack-plugin')
// const PlatformLoader = require('rax-webpack-plugin/lib/PlatformLoader');
let indexConfig = {
plugins: [
new webpack.ProgressPlugin(),
new RaxPlugin({
// Target format: `bundle`, `cmd`, `umd` or `factory`(build for builtin module format), default is umd
target: 'umd',
// Only for `bundle` target, default is '// {"framework" : "Rax"}'
// frameworkComment: '// {"framework" : "Rax"}',
// component mode build config
// moduleName: 'rax',
// globalName: 'Rax',
// Enable external builtin modules, default is false
// externalBuiltinModules: false,
// Config which builtin modules should external, default config is define in `RaxPlugin.BuiltinModules`
// builtinModules: RaxPlugin.BuiltinModules,
// Enable include polyfill files
// includePolyfills: false,
// Config which polyfill should include, defaut is empty
// polyfillModules: [],
// Check duplicate dependencies, default is ['rax']
// duplicateCheck: ['rax'],
}),
new UglifyJsPlugin()
],
entry: {
index: './src/index.js'
},
output: {
path: __dirname + '/lib/',
filename: '[name].js'
},
module: {
rules: [
{
test: /\.js$/,
use: {
loader: 'babel-loader',
options: {
presets: ['es2015', 'rax']
}
},
exclude: /node_modules/,
}
]
}
};
let weexConfig = {
plugins: [
new webpack.ProgressPlugin(),
new RaxPlugin({
target: 'umd'
}),
new UglifyJsPlugin()
],
entry: {
'index.weex': './src/index.js',
'index.native': './src/index.js'
},
output: {
path: __dirname + '/lib/',
filename: '[name].js'
},
module: {
rules: [
{
test: /\.js$/,
use: {
loader: 'babel-loader',
options: {
presets: ['es2015', 'rax'],
plugins: [require('babel-plugin-minify-dead-code-elimination')]
}
},
exclude: /node_modules/,
},
{
enforce: 'pre',
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: require.resolve('rax-webpack-plugin/lib/PlatformLoader') + '?platform=weex&name[]=@dolphinweex/universal-env'
}
}
]
}
};
let webConfig = {
plugins: [
new webpack.ProgressPlugin(),
new RaxPlugin({
target: 'umd'
}),
new UglifyJsPlugin()
],
entry: {
index: './src/index.js'
},
output: {
path: __dirname + '/lib/',
filename: '[name].web.js'
},
module: {
rules: [
{
test: /\.js$/,
use: {
loader: 'babel-loader',
options: {
presets: ['es2015', 'rax'],
plugins: [require('babel-plugin-minify-dead-code-elimination')]
}
},
exclude: /node_modules/,
},
{
enforce: 'pre',
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: require.resolve('rax-webpack-plugin/lib/PlatformLoader') + '?platform=web&name[]=@dolphinweex/universal-env'
}
}
]
}
};
const compiler = webpack([indexConfig, webConfig, weexConfig]);
compiler.run((err, state) => {
if (err) {
console.error('compile err:', err)
}
});