typescript - tslint-loader con webpack 2.1.0-beta.25
webpack-2 (3)
ok ... entonces solo necesitaba mover la definición de tslint
en:
plugins: [
new LoaderOptionsPlugin({
options: {
tslint: {
...
y declarado
const LoaderOptionsPlugin = require("webpack/lib/LoaderOptionsPlugin");
Tengo un Proyecto angular2 que comprime / compilo con webpack.
Uso el cargador de tslink con el paquete web, así que tengo la configuración relacionada con webpack.config.js
en 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"
}
],
}
}
Actualicé el paquete web 1.13.1 a 2.1.0-beta.25 y la configuración de tslint rompe el proceso de complicación de npm run build
.
Cambié la directiva preLoaders
a loaders
module: {
....
{
test: //.ts$/,
loader: ''tslint'',
exclude: /(node_modules)/,
enforce: ''pre''
},
],
}
eso no es suficiente porque sigo teniendo el error
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.
así que debería mover la configuración tslint y ubicarla en otro lugar. un poco perdido aquí. por lo que cualquier información sobre el tema sería muy apreciada.
¡Gracias!
Para otros que tienen problemas con preloaders en el paquete web 2. En beta v2.1-beta.23 hay cambios de última hora con pre / postLoaders.
Primero, la sección de "cargadores" debe renombrarse a "reglas". También pre / postLoaders ahora se define bajo reglas.
En mi caso, estaba usando tslint como precargador. Para agregar un pre / postcargador a las reglas, agregue la propiedad de enforce
valor pre
o post
.
module: {
rules: [
{
enforce: ''pre'',
test: //.tsx?$/,
loader: ''tslint'',
exclude: /(node_modules)/,
},
{
test: //.tsx?$/,
loaders: [''awesome-typescript-loader''],
exclude: /(node_modules)/
}
]
}
Más información en el lanzamiento de github: Webpack v2.1.0-beta.23
En la información de publicación también hay un enlace a una solicitud de extracción que muestra los cambios necesarios que van desde v2.1.0-beta.22
a v2.1.0-beta.23
en el archivo de configuración del paquete web. Allí puede ver que también necesita el LoaderOptionsPlugin.
plugins: [
new webpack.LoaderOptionsPlugin({
options: {
tslint: {
emitErrors: true,
failOnHint: true
}
}
})
]
Si no desea agregar un complemento, puede hacer algo como esto,
module: {
rules: [
{
enforce: ''pre'',
test: //.ts$/,
loader: ''tslint-loader?'' + JSON.stringify({
emitErrors: true,
failOnHint: true
})
}
]
}