Webpackで圧縮/コンパイルするangular2プロジェクトがあります。
Webpackでtslinkローダーを使用しているため、webpack.config.js
。
module.exports = {
...
tslint: {
configuration: {
rules: {
quotemark: [true, "double"]
}
},
// tslint errors are displayed by default as warnings
// set emitErrors to true to display them as errors
emitErrors: false,
// tslint does not interrupt the compilation by default
// if you want any file with tslint errors to fail
// set failOnHint to true
failOnHint: true,
// name of your formatter (optional)
formatter: "",
// path to directory containing formatter (optional)
formattersDirectory: "node_modules/tslint-loader/formatters/",
// These options are useful if you want to save output to files
// for your continuous integration server
fileOutput: {
// The directory where each file"s report is saved
dir: "./webpack-log/",
// The extension to use for each report"s filename. Defaults to "txt"
ext: "xml",
// If true, all files are removed from the report directory at the beginning of run
clean: true,
// A string to include at the top of every report file.
// Useful for some report formats.
header: "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<checkstyle version=\"5.7\">",
// A string to include at the bottom of every report file.
// Useful for some report formats.
footer: "</checkstyle>"
}
},
...
preLoaders: [
{
test: /\.ts$/,
loader: "tslint"
}
],
}
}
Webpack 1.13.1を2.1.0-beta.25に更新しましたが、tslint構成によりnpm run build
。
preLoaders
ディレクティブをloaders
に変更しました
module: {
....
{
test: /\.ts$/,
loader: 'tslint',
exclude: /(node_modules)/,
enforce: 'pre'
},
],
}
それは私がまだエラーを受け取るので十分ではありません
For loader options: webpack 2 no longer allows custom properties in configuration.
Loaders should be updated to allow passing options via loader options in module.rules.
そのため、tslint構成を移動し、別の場所に配置する必要があります。ここでちょっと迷いました。そのため、問題に関する情報をいただければ幸いです。
ありがとう!
Webpack 2のプリローダーに問題がある他の人向け。ベータv2.1-beta.23には、pre/postLoaderに重大な変更があります。
最初に、「ローダー」セクションの名前を「ルール」に変更する必要があります。また、pre/postLoadersはルールの下で定義されるようになりました。
私の場合、私はtslintをpreLoaderとして使用していました。 pre/postLoaderをルールに追加するには、enforce
またはpre
のいずれかの値を持つpost
プロパティを追加します。
module: {
rules: [
{
enforce: 'pre',
test: /\.tsx?$/,
loader: 'tslint',
exclude: /(node_modules)/,
},
{
test: /\.tsx?$/,
loaders: ['awesome-TypeScript-loader'],
exclude: /(node_modules)/
}
]
}
Githubのリリースの詳細: Webpack v2.1.0-beta.2
リリース情報には、 プルリクエスト へのリンクもあり、v2.1.0-beta.22
からv2.1.0-beta.23
webpack構成ファイル。 LoaderOptionsPluginも必要であることがわかります。
plugins: [
new webpack.LoaderOptionsPlugin({
options: {
tslint: {
emitErrors: true,
failOnHint: true
}
}
})
]
ok ..だから私はtslint
定義を下に移動する必要がありました:
plugins: [
new LoaderOptionsPlugin({
options: {
tslint: {
...
そして宣言した
const LoaderOptionsPlugin = require("webpack/lib/LoaderOptionsPlugin");
プラグインを追加したくない場合は、次のようなことができます、
module: {
rules: [
{
enforce: 'pre',
test: /\.ts$/,
loader: 'tslint-loader?' + JSON.stringify({
emitErrors: true,
failOnHint: true
})
}
]
}