工程使用 yeoman 生成的,但是只有在 src 文件夹下的代码会被正确打包,但是我想将 examples 文件夹放到和 src同级,应该如何更改配置呢?
webpack 配置
base.js
module.exports = {
additionalPaths: additionalPaths,
port: defaultSettings.port,
debug: true,
devtool: 'eval',
output: {
path: path.join(__dirname, '/../dist/assets'),
filename: 'app.js',
publicPath: defaultSettings.publicPath
},
devServer: {
contentBase: ['./demos/', './src/'],
historyApiFallback: true,
hot: true,
port: defaultSettings.port,
publicPath: defaultSettings.publicPath,
noInfo: false
},
resolve: {
extensions: ['', '.js', '.jsx'],
alias: {
utils: `${defaultSettings.srcPath}/utils/`,
data: `${defaultSettings.srcPath}/data/`,
layout: `${defaultSettings.srcPath}/layout/`,
base: `${defaultSettings.srcPath}/base/`,
actions: `${defaultSettings.srcPath}/actions/`,
constants: `${defaultSettings.srcPath}/constants/`,
components: `${defaultSettings.srcPath}/components/`,
sources: `${defaultSettings.srcPath}/sources/`,
stores: `${defaultSettings.srcPath}/stores/`,
styles: `${defaultSettings.srcPath}/styles/`,
css: `${defaultSettings.srcPath}/css/`
}
},
module: {}
};
default.js
const path = require('path');
const srcPath = path.join(__dirname, '/../src');
const dfltPort = 8000;
/**
* Get the default modules object for webpack
* @return {Object}
*/
function getDefaultModules() {
return {
preLoaders: [
{
test: /\.(js|jsx)$/,
include: [path.join(__dirname, '/../demos'), srcPath],
loader: 'eslint-loader'
}
],
loaders: [
{
test: /\.css$/,
loader: 'style-loader!css-loader!autoprefixer-loader?browsers=last 2 version'
},
{
test: /\.sass/,
loader: 'style-loader!css-loader!autoprefixer-loader?browsers=last 2 version!sass-loader?outputStyle=expanded&indentedSyntax'
},
{
test: /\.scss/,
loader: 'style-loader!css-loader!autoprefixer-loader?browsers=last 2 version!sass-loader?outputStyle=expanded'
},
{
test: /\.less/,
loader: 'style-loader!css-loader!autoprefixer-loader?browsers=last 2 version!less-loader'
},
{
test: /\.styl/,
loader: 'style-loader!css-loader!autoprefixer-loader?browsers=last 2 version!stylus-loader'
},
{
test: /\.(png|jpg|gif|woff|woff2|ttf|eot)$/,
loader: 'url-loader?limit=8192'
},
{
test: /\.(mp4|ogg|svg)$/,
loader: 'file-loader'
}, {
test: /\.json/,
loader: 'json-loader'
}
]
};
}
module.exports = {
srcPath: srcPath,
publicPath: '/assets/',
port: dfltPort,
getDefaultModules: getDefaultModules
};
dev.js
let path = require('path');
let webpack = require('webpack');
let baseConfig = require('./base');
let defaultSettings = require('./defaults');
// Add needed plugins here
let BowerWebpackPlugin = require('bower-webpack-plugin');
let config = Object.assign({}, baseConfig, {
entry: [
'webpack-dev-server/client?http://127.0.0.1:' + defaultSettings.port,
'webpack/hot/only-dev-server',
'./src/index'
],
cache: true,
devtool: 'sourcemap',
plugins: [
new webpack.HotModuleReplacementPlugin(),
new webpack.optimize.DedupePlugin(),
new BowerWebpackPlugin({
searchResolveModulesDirectories: false
}),
new webpack.optimize.OccurenceOrderPlugin(),
new webpack.optimize.AggressiveMergingPlugin()
],
module: defaultSettings.getDefaultModules()
});
// Add needed loaders to the defaults here
config.module.loaders.push({
test: /\.(js|jsx)$/,
loader: 'react-hot!babel-loader',
include: [].concat(
config.additionalPaths,
[path.join(__dirname, '/../src')]
)
});
module.exports = config;