【发布时间】:2017-09-21 07:14:09
【问题描述】:
我想使用 webpack 2 从头开始设置一个 Angular 1.x 应用程序。
我在为webpack.config 找到最佳配置时遇到了麻烦,而在生产环境中使用最佳entry 和output(意思是,所有代码、样式和模板都已缩小和压缩,没有代码重复)。
我的主要问题是如何设置 webpack.config 以便它识别我项目文件夹结构中的所有部分,如下所示:
我当前的配置文件,供参考(看不到子文件夹):
var HtmlWebpackPlugin = require( 'html-webpack-plugin' );
var ExtractTextPlugin = require( 'extract-text-webpack-plugin' );
var path = require( 'path' );
module.exports = {
devServer: {
compress: true,
contentBase: path.join( __dirname, '/dist' ),
open: true,
port: 9000,
stats: 'errors-only'
},
entry: './src/app.js',
output: {
path: path.join( __dirname, '/dist' ),
filename: 'app.bundle.js'
},
module: {
rules: [ {
test: /\.scss$/,
use: ExtractTextPlugin.extract( {
fallback: 'style-loader',
use: [
'css-loader',
'sass-loader'
],
publicPath: '/dist'
} )
} ]
},
plugins: [
new HtmlWebpackPlugin( {
hash: true,
minify: { collapseWhitespace: true },
template: './src/index.html',
title: 'Prov'
} ),
new ExtractTextPlugin( {
filename: 'main.css',
allChunks: true
} )
]
};
【问题讨论】:
-
所以你有
app.js你想将你的部分导入 app.js 还是编译proverb-list.js作为一个单独的指令/控制器? -
如果我对您的问题的理解正确(即通过 webpack 编译部分),您有两个选择,1. 将您的部分(通过 glob 或每个文件)推送到条目中,或者 2. 导入他们进入 app.js 和 commonChuck。 -
-
是的,我认为您理解正确,选项 2 是否意味着我应该使用 require 将我所有的 js 文件导入到
app.js,并将所有html模板导入到指令本身也使用 require?跨度> -
你可以这样做——你需要
html-loader作为模板。如果您想将指令拆分为单独的包(而不是app.bundle.js),您可以使用CommonChunksPlugin或将这些文件附加到您的entry -
我无法理解哪个
webpack.config设置将是最佳路线,以及在开发过程中我必须注意哪些实践以保证代码可以在生产中工作(即我是否需要app.js或单独的index.js文件中的所有内容?我是否应该基于每个组件或其他方式要求我的模板和样式?)
标签: javascript angularjs webpack webpack-dev-server webpack-2