found - awesome-typescript-loader cargar/compilar solo archivos refrendados
webpack 3 awesome typescript loader (1)
Webpack en sí no incluye ningún archivo que no se esté importando. Pero TypeScript parece verificar cada archivo en su proyecto a menos que se configure de otra manera. De los documentos tsconfig.json
:
Si los "archivos" y "incluir" no se especifican, el compilador establece por defecto incluir todos los archivos TypeScript (.ts, .d.ts y .tsx) en el directorio y los subdirectorios que los contienen, excepto los excluidos con la propiedad "exclude".
Puede configurar la opción de files
para que solo incluya su punto de entrada y solo debe verificar los archivos que está importando.
"files": [
"Scripts/index.ts"
]
Por lo que he probado, también puede configurarlo en una matriz vacía, por lo que no revisará ningún archivo de forma predeterminada y awesome-typescript-loader
pasará los archivos al compilador como se esperaba, y seguirán siendo verificados.
"files": []
¿Es posible configurar awesome-typescript-loader o webpack o tsc para simplemente compilar los archivos a los que se hace referencia (directa, indirectamente) desde la entrada? Quiero portar una aplicación existente y quiero poder compilar mi código parcialmente portado, mientras que algunos archivos sin referencia no son compilables.
Herramientas usadas
- awesome-typescript-loader: 3.1.2,
- paquete web: 2.3.3
webpack.js
var webpack = require(''webpack'');
module.exports = {
entry: {
''index'': ''./Scripts/index.ts'',
},
output: {
path: helpers.root(''dist''),
filename: ''[name].js''
},
resolve: {
extensions: [''.ts'', ''.js'']
},
module: {
rules: [
{
test: /.ts$/,
loader: ''awesome-typescript-loader''
}
]
}
}
tsconfig
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"importHelpers": true,
"typeRoots": [
"node_modules/@types"
],
"sourceMap": true,
"lib": [
"dom",
"es5",
"scripthost"
],
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"noImplicitAny": false,
"suppressImplicitAnyIndexErrors": true
},
"exclude": [
"node_modules"
]
}
Mensajes de error (de archivos que no están referenciados por index.ts)
[at-loader] Checking started in a separate process...
[at-loader] Checking finished with 46 errors
Hash: a2f6e7a56b152c02a325
Version: webpack 2.3.3
Time: 3554ms
Asset Size Chunks Chunk Names
index.js 2.73 kB 0 [emitted] index
[0] ./Scripts/index.ts 79 bytes {0} [built]
ERROR in [at-loader] ./Scripts/editor/foo.ts:47:61
TS2448: Block-scoped variable ''eventList'' used before its declaration.
... MORE ERRORS ...
npm ERR! Windows_NT 10.0.14393
npm ERR! argv "C://Program Files//nodejs//node.exe" "C://Program Files//nodejs//node_modules//npm//bin//npm-cli.js" "run" "build"
npm ERR! node v6.9.2
npm ERR! npm v3.10.9
npm ERR! code ELIFECYCLE
npm ERR! [email protected] build: `webpack --config webpack.config.js`
npm ERR! Exit status 2
npm ERR!
npm ERR! Failed at the [email protected] build script ''webpack --config webpack.config.js''.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the FooBar package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! webpack --config webpack.config.js
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs FooBar
npm ERR! Or if that isn''t available, you can get their info via:
npm ERR! npm owner ls FooBar
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! D:/FooBar/npm-debug.log