我将为您翻译以下内容:
我尝试在webpack 2
中使用typescript 2.2.2
和babel
加载器,并排除node_modules
,但是当我尝试使用webpack
命令时,仍然会从node_modules
中的angular 4.0.0
得到错误。
webpack.config.js:
var path = require('path');
var webpack = require('webpack');
var PROD = true;
module.exports = {
entry: path.join(__dirname, 'ng2', 'src','index.js'),
output: {
path: path.join(__dirname, 'ng2', 'dist'),
filename: 'vendorNG2.js'
},
devtool: 'eval',
resolve: {
extensions: [".tsx", ".ts", ".js"]
},
watch: true,
module: {
rules: [
{
test: /\.tsx?$/,
loader: 'ts-loader',
exclude: [/node_modules/],
},
{
test: /\.js$/,
exclude: [/node_modules/],
use: {
loader: "babel-loader?cacheDirectory=true",
options: {
presets: ['es2015']
}
}
},
]
},
plugins: PROD ? [
new webpack.optimize.UglifyJsPlugin({
compress: { warnings: false }
})
] : []
}
在运行 webpack --progress 命令后:
...
ERROR in /home/user/Projects/project/front/node_modules/angular2/src/facade/lang.d.ts
(13,17): error TS2693: 'Map' only refers to a type, but is being used as a value here.
ERROR in /home/user/Projects/project/front/node_modules/angular2/src/facade/lang.d.ts
(14,17): error TS2693: 'Set' only refers to a type, but is being used as a value here.
ERROR in ./ng2/src/app/main.ts
(19,14): error TS1219: Experimental support for decorators is a feature that is subject to change in a future release. Set the 'experimentalDecorators' option to remove this warning.
您可以看到来自node_modules的错误。
tsconfig.json v1:
{
"compilerOptions": {
"outDir": "./dist/",
"sourceMap": true,
"noImplicitAny": true,
"module": "commonjs",
"target": "es5",
"jsx": "react",
"allowJs": true
}
}
tsconfig.json v2:
{
"compilerOptions": {
"outDir": "./ng2/dist/",
"sourceMap": true,
"noImplicitAny": true,
"module": "commonjs",
"target": "es5",
"jsx": "react",
"type":[],
"allowJs": true
},
"exclude": [
"node_modules"
]
}
v2错误:
ERROR in /home/user/Projects/project/front/admin/tsconfig.json
error TS5023: Unknown compiler option 'type'.
@ ./ng2/src/index.js 8:0-21
ERROR in ./ng2/src/app/main.ts
Module build failed: error while parsing tsconfig.json
@ ./ng2/src/index.js 8:0-21
在tsconfig.js v3中添加("experimentalDecorators": true)后,一些错误得以解决:
{
"compilerOptions": {
"outDir": "./ng2/dist/",
"sourceMap": true,
"noImplicitAny": true,
"module": "commonjs",
"target": "es5",
"jsx": "react",
"experimentalDecorators": true,
"allowJs": true
},
"exclude": [
"node_modules"
]
}
v3错误:
... /home/user/Projects/project/front/node_modules/angular2/src/facade/lang.d.ts中的ERROR (13,17):错误TS2693:'Map'仅用作类型引用,但在此处被用作值。
/home/user/Projects/project/front/node_modules/angular2/src/facade/lang.d.ts中的ERROR (14,17):错误TS2693:'Set'仅用作类型引用,但在此处被用作值。
tsconfig
长什么样? - tymeJVtsconfig
中添加experimentalDecorators: true
吗?如果这不起作用,尝试添加"types": []
。 - tymeJV"types:[]"
而不是"type"
。 - tymeJV