我试图让一个非常简单的Angular2应用程序工作,将Webpack作为模块捆绑器。我跟随this code,我按原样复制了所有配置文件,只更改了文件路径。但是,当我运行npm-start
时,我收到以下错误,我认为这是一个Webpack错误:
ERROR in ./hello.js
Module parse failed: /home/marieficid/Documentos/cloud/cloud/hello.js Line 1: Unexpected token
You may need an appropriate loader to handle this file type.
| import {bootstrap} from "angular2/platform/browser";
| import {Component} from "angular2/core";
|
@ ./app.ts 2:0-21
因此,我的应用中的Angular2代码未加载。
这是我的app.ts
:
import "./hello.js";
这是hello.js
,其中的错误似乎是(我认为这意味着webpack解析了app.ts就好了):
import {bootstrap} from "angular2/platform/browser";
import {Component} from "angular2/core";
@Component({
selector: 'app',
template: '<div>Hello world</div>'
})
class App{}
bootstrap(App);
这是webpack.config.js
:
var webpack = require('webpack');
var HtmlWebpackPlugin = require('html-webpack-plugin');
var path = require('path');
module.exports = {
entry: {
'app': './app.ts',
'vendor': './vendor.ts'
},
output: {
path: "./dist",
filename: "bundle.js"
},
plugins: [
new webpack.optimize.CommonsChunkPlugin('vendor', 'vendor.bundle.js'),
new HtmlWebpackPlugin({
inject: false,
template: './index.html'
})
],
resolve: {
extensions: ['', '.ts', '.js']
},
module: {
loaders: [
{ test: /\.ts$/, loader: 'ts-loader' },
],
noParse: [ path.join(__dirname, 'node_modules', 'angular2', 'bundles') ]
},
devServer: {
historyApiFallback: true
}
};
所有这些文件和node_modules
都在同一目录中。
我在网上发现了类似的问题,但对我来说没什么用。我也没有安装babel,因为我用作基础的示例代码并没有使用它,但如果有必要,我会这样做。
答案 0 :(得分:0)
正如@napstablook
所建议的那样因为你的webpack.config.js文件中有
resolve: {
extensions: ['', '.ts', '.js']
},
Webpack将尝试处理这些.js
文件,但它需要一个特定的加载器来执行此操作,如果我没有错,请script-loader
。
在您的情况下,解决方案就像删除.js
文件或将其扩展名更改为.ts
一样简单。
答案 1 :(得分:0)
当我设置了补丁值然后一个额外的 = 符号时,这个错误也会以角度形式出现在我身上 ncont.controls[position].patchValue({[cardname]:file}) = 文件 这对我来说是一个愚蠢的部分,因为不告诉我而有角度
答案 2 :(得分:0)
对我来说这个问题是在我运行 ng test 时发生的, 请检查以下几点,