В файле webpack.config.js
вы добавляете это свойство в свойство resolve
:
resolve: {
alias: {
bower_components: __dirname + '/app/bower_components'
}
}
В файле main-app.js
, если вы хотите использовать какой-либо файл js, вы вызываете так:
require('bower_components/jquery/dist/jquery.js');
require('bower_components/angular/angular.js');
require('bower_components/bootstrap/dist/js/bootstrap.js');
// ...
Необходимо указать путь к файлу webpack.config.js
.В моем примере весь путь выглядит следующим образом:
your_project
webpack.config.js
app
bower_components
jquery
...
angular
...
bootstrap
...
__dirname
относится к текущему пути файла js, который его использует.Если вы используете __dirname
внутри webpack.config.js
файла, он будет отображать your_project
.Или используя его внутри jquery.js
, он отобразит your_project\app\bowser_components\jquery\dist
.
Затем создайте файл bundle.js
и удалите все пути в файле Index.cshtml
.
Надеюсь, это поможет!
ОБНОВЛЕНИЕ: Если ваш целевой файл js становится слишком большим.Вы можете разбить модули на несколько частей, например:
entry: {
'bootstrap_and_some_plugin.css': [
'./app/bower_components/bootstrap/dist/css/bootstrap.min.css',
'./app/bower_components/some-plugin/css/some-plugin.css'
],
'jquery_and_angular.js': [
'./app/bower_components/jquery/dist/jquery.js',
'./app/bower_components/angular/angular.js'
],
'site.js': ['./js/site']
}
Затем в вашем Index.cshtml
:
<link href="bootstrap_and_some_plugin.css" rel="stylesheet" />
<!-- body content -->
<script src="jquery_and_angular.js"></script>
<script src="site.js"></script>
ОБНОВЛЕНИЕ 2: Вам необходимо установить2 пакета babili-webpack-plugin и extract-text-webpack-plugin
В файле webpack.config.js
:
// define these variables before "module.exports"
var BabiliPlugin = require('babili-webpack-plugin');
var ExtractTextPlugin = require('extract-text-webpack-plugin');
module.exports = {...};
Затем установите параметры плагина:
plugins: [
new BabiliPlugin({}, { test: /\.js$/, comments: false }),
new ExtractTextPlugin('[name]'),
... and other options
]
и параметры вывода:
output: {
filename: '[name]',
... and other options
}