【发布时间】:2016-12-06 05:10:59
【问题描述】:
这是我的(简化的)Angular 2 应用程序文件夹结构:
这是我的 webpack.config.js:
var webpack = require('webpack');
var HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
entry: {
'polyfills': './polyfills.ts',
'vendor': './vendor.ts',
'app': './app/main.ts'},
output: {
path: './dist',
filename: '[name].js',
chunkFilename: "[id].bundle.js",
sourcemapFilename: '[name].map'
},
module: {
loaders: [
{test: /\.ts$/, loaders: ['ts', 'angular2-template-loader']},
{
test: /\.html$/,
loader: 'html'
},
{
test: /\.(png|jpe?g|gif|svg|woff|woff2|ttf|eot|ico)$/,
loader: 'file?name=assets/[name].[hash].[ext]'
},
,{ test: /\.css$/, loaders: 'style!css' }
]
},
resolve: {
extensions: ['', '.js', '.ts']
},
plugins: [
new webpack.optimize.CommonsChunkPlugin({
name: ['app', 'vendor', 'polyfills']
}),
new HtmlWebpackPlugin({
template: './index.html'
})
]
}
当我执行 webpack 构建时,dist 文件夹只获取 index.html、app.js、polyfills.js 和 vendor.js。 app.component.html、css 和 users 组件 html 文件不会被复制(在各自的文件夹、app、app/users...中)到 dist 文件夹。
我错过了什么?
编辑:
这是从开发工具中看到的样子:
【问题讨论】:
-
您的 templateUrl 似乎没有被遵守。你能分享你的组件的代码吗
-
@Component({ selector: 'my-app', templateUrl: 'app/app.component.html', styleUrls: ['app/app.component.css'],这就是它的定义方式。它与 System.js 一起工作,在 webpack 中失败。 -
你在github上有代码吗?在你的 webpack 中 ['ts', 'angular2-template-loader'] 不应该是 ['ts-loader', 'angular2-template-loader']
-
你解决了吗?
-
@Govan 就像下面的答案一样,我使用 Angular Docs 中的 Webpack 示例重新创建了我的应用程序。还要仔细检查模板 URL,因为在更新 typescript(或者是 Webpack,我不记得了)之后,相对路径不再是问题。从那时起,我的项目就没有问题了。但当时我无法按原样解决。
标签: typescript angular webpack