const {resolve} = require('path');
const CopyPlugin = require('copy-webpack-plugin');
const webpack =require('webpack');
const cmd = require('node-cmd');


const {data:versions,err} = cmd.runSync('npm v uni-simple-router versions');

if(err){
    console.log('获取线上版本失败,无法继续打包。。。')
    process.exit(1);
}

let lastVersion='';
const list=JSON.parse(versions.replace(/'/g,'"')).reverse();
for(let i=0;i<list.length;i++){
    if (!/[A-Za-z]/g.test(list[i])) {
        lastVersion=list[i];
        break;
    }
}

module.exports = {
	entry: './src/index.ts',
	output: {
		library: 'Router',
		libraryTarget: 'umd',
	},
	resolve: {
		extensions: ['.tsx', '.ts', 'd.ts', '.js', '.json'],
	},
	module: {
		rules: [
			{
				test: /\.tsx?$/,
				use: [
					{
						loader: 'ts-loader',
					},
				],
				exclude: /node_modules/,
			},
		],
	},
	plugins: [
		new CopyPlugin([
			{
				force: true,
				from: resolve(__dirname, '../src/component'),
				to: resolve(__dirname, '../dist'),
			}
		]),
        new webpack.DefinePlugin({
            $npm_package_name: webpack.DefinePlugin.runtimeValue(() => {
                return JSON.stringify(process.env.npm_package_name.toLocaleUpperCase())
            }, true ),
            $npm_package_version: webpack.DefinePlugin.runtimeValue(() => {
                return JSON.stringify(process.env.npm_package_version.toLocaleUpperCase())
            }, true ),
            $npm_package_last_version: webpack.DefinePlugin.runtimeValue(() => {
                return JSON.stringify(lastVersion)
            }, true ),
        })
	],
};