Commit c4e4f22b authored by 夏彬's avatar 夏彬

修改环境配置

parent 51b74bed
...@@ -6,7 +6,7 @@ module.exports = { ...@@ -6,7 +6,7 @@ module.exports = {
}, },
plugins: [ plugins: [
new webpack.DefinePlugin({ new webpack.DefinePlugin({
__BASE_URL__: JSON.stringify('//songxia.ibanshou.cn/'), __BASE_URL__: JSON.stringify('//code.ibanshou.cn/songxia/'),
__SERVER_URL__: JSON.stringify('//code.ibanshou.cn/'), __SERVER_URL__: JSON.stringify('//code.ibanshou.cn/'),
__QINIU_URL__: JSON.stringify('http://img.2g.vgot.net/'), __QINIU_URL__: JSON.stringify('http://img.2g.vgot.net/'),
__NODE_ENV__: '"production"' __NODE_ENV__: '"production"'
......
var webpack = require('webpack');
module.exports = {
output: {
chunkFilename: '[name].[chunkhash].js'
},
plugins: [
new webpack.DefinePlugin({
__BASE_URL__: JSON.stringify('//testweb.pp.cc/songxia/'),
__SERVER_URL__: JSON.stringify('//code.ibanshou.cn/'),
__QINIU_URL__: JSON.stringify('http://img.2g.vgot.net/'),
__NODE_ENV__: '"test"'
}),
new webpack.optimize.UglifyJsPlugin({
compress: {
warnings: false
}
}),
new webpack.LoaderOptionsPlugin({
minimize: true
})
]
};
...@@ -5,7 +5,9 @@ ...@@ -5,7 +5,9 @@
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {
"dev": "cross-env NODE_ENV=development webpack-dev-server --watch -d --progress --color --open", "dev": "cross-env NODE_ENV=development webpack-dev-server --watch -d --progress --color --open",
"build": "cross-env NODE_ENV=production webpack --progress --hide-modules" "test": "cross-env NODE_ENV=test webpack --progress --hide-modules",
"prod": "cross-env NODE_ENV=production webpack --progress --hide-modules"
}, },
"keywords": [ "keywords": [
"webpack" "webpack"
......
...@@ -5,17 +5,19 @@ var CopyWebpackPlugin = require('copy-webpack-plugin'); ...@@ -5,17 +5,19 @@ var CopyWebpackPlugin = require('copy-webpack-plugin');
var ExtractTextPlugin = require("extract-text-webpack-plugin"); var ExtractTextPlugin = require("extract-text-webpack-plugin");
var HtmlWebpackPlugin = require('html-webpack-plugin'); var HtmlWebpackPlugin = require('html-webpack-plugin');
var nodeEnv = process.env.NODE_ENV; var nodeEnv = process.env.NODE_ENV;
if (nodeEnv === 'production') { if (nodeEnv === 'production') {
var env = require('./config/prod.js'); var env = require('./config/prod.js');
} else if (nodeEnv === 'test') {
var env = require('./config/test.js');
} else { } else {
var env = require('./config/dev.js'); var env = require('./config/dev.js');
} }
var entry = { var entry = {
"web": ["vue", "jquery", "./src/utils/layer", "./src/utils/common.js", "./src/utils/api.js"], "web": ["vue", "jquery", "./src/utils/layer", "./src/utils/common.js", "./src/utils/api.js"],
"main": ["./src/main.js"] "main": ["./src/main.js"]
}; };
var entryChunks = ['web', 'main']; var entryChunks = ['web', 'main'];
...@@ -23,65 +25,65 @@ var commonsChunk = ['web']; ...@@ -23,65 +25,65 @@ var commonsChunk = ['web'];
//开发环境为防止监控文件变化时每次都重新编译通用块,需将 manifest 模块描述文件独立出来 //开发环境为防止监控文件变化时每次都重新编译通用块,需将 manifest 模块描述文件独立出来
if (nodeEnv == 'development') { if (nodeEnv == 'development') {
entryChunks.unshift('manifest'); entryChunks.unshift('manifest');
commonsChunk.push('manifest'); commonsChunk.push('manifest');
} }
var targetDir = path.resolve(__dirname, './dist'); var targetDir = path.resolve(__dirname, './dist');
var config = { var config = {
entry: entry, entry: entry,
output: { output: {
path: targetDir, path: targetDir,
publicPath: '/', publicPath: '/',
filename: '[name].js?[chunkhash]' filename: '[name].js?[chunkhash]'
}, },
externals: [ externals: [
require('webpack-require-http') require('webpack-require-http')
], ],
module: { module: {
rules: [ rules: [
{test: require.resolve("./src/utils/common.js"), loader: 'expose-loader?common'}, {test: require.resolve("./src/utils/common.js"), loader: 'expose-loader?common'},
{test: require.resolve("jquery"), loader: "expose-loader?$!expose-loader?jQuery"}, {test: require.resolve("jquery"), loader: "expose-loader?$!expose-loader?jQuery"},
{test: /\.css$/, loader: ExtractTextPlugin.extract({fallback: 'style-loader', use: 'css-loader'})}, {test: /\.css$/, loader: ExtractTextPlugin.extract({fallback: 'style-loader', use: 'css-loader'})},
{test: /\.(png|jpg|gif)$/, loader: 'url-loader?limit=8192'}, {test: /\.(png|jpg|gif)$/, loader: 'url-loader?limit=8192'},
{test: /\.vue$/, loader: 'vue-loader'}, {test: /\.vue$/, loader: 'vue-loader'},
{test: /\.(ttf|eot|svg|woff(2)?)(\?[\w\-_#=&.]+)?$/, loader: 'file-loader'}, {test: /\.(ttf|eot|svg|woff(2)?)(\?[\w\-_#=&.]+)?$/, loader: 'file-loader'},
{ {
test: /\.js$/, test: /\.js$/,
loader: 'babel-loader', loader: 'babel-loader',
exclude: ["/node_modules/"] exclude: ["/node_modules/"]
} }
] ]
}, },
plugins: [ plugins: [
new webpack.optimize.CommonsChunkPlugin({ new webpack.optimize.CommonsChunkPlugin({
names: commonsChunk, names: commonsChunk,
filename: 'common/[name].js?[chunkhash]' filename: 'common/[name].js?[chunkhash]'
}), }),
new CopyWebpackPlugin([ new CopyWebpackPlugin([
// {from: __dirname + '/resource', to: 'resource'}, // {from: __dirname + '/resource', to: 'resource'},
{from: './src/libs/layer', to:'layer'}, {from: './src/libs/layer', to: 'layer'},
{from: './src/img', to: 'img'}, {from: './src/img', to: 'img'},
{from: './src/libs/videojs/video-js.swf', to: 'videojs'}, {from: './src/libs/videojs/video-js.swf', to: 'videojs'},
{from: './src/libs/plupload', to: 'plupload'} {from: './src/libs/plupload', to: 'plupload'}
]), ]),
new ExtractTextPlugin("css/[name].css?[chunkhash]"), new ExtractTextPlugin("css/[name].css?[chunkhash]"),
new webpack.HashedModuleIdsPlugin(), new webpack.HashedModuleIdsPlugin(),
new HtmlWebpackPlugin({ new HtmlWebpackPlugin({
filename: path.resolve(targetDir, './index.html'), filename: path.resolve(targetDir, './index.html'),
template: path.resolve(__dirname, './src/entry.html'), template: path.resolve(__dirname, './src/entry.html'),
chunks: entryChunks, chunks: entryChunks,
chunksSortMode: function (a, b) { chunksSortMode: function (a, b) {
return entryChunks.indexOf(a.names[0]) - entryChunks.indexOf(b.names[0]); return entryChunks.indexOf(a.names[0]) - entryChunks.indexOf(b.names[0]);
} }
}) })
], ],
resolve: { resolve: {
alias: { alias: {
'layer-js': path.resolve(__dirname, './src/libs/layer/2.4/layer.js'), 'layer-js': path.resolve(__dirname, './src/libs/layer/2.4/layer.js'),
'vue$': 'vue/dist/vue.common.js' 'vue$': 'vue/dist/vue.common.js'
} }
} }
}; };
config = merge(config, env); config = merge(config, env);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment