Búsqueda de sitios web

node.js - No se puede encontrar el espacio de nombres 'Webpack' durante la compilación de una aplicación Aurelia con Webpack


Estoy intentando configurar una aplicación Aurelia con Webpack, pero recibo el error todo el tiempo:

[at-loader] Checking finished with 1 errors
[at-loader] ./node_modules/aurelia-loader-webpack/dist/commonjs/aurelia-loader-webpack.d.ts:31:51
    TS2503: Cannot find namespace 'Webpack'.

Instalé @types/webpack y también los módulos: webpack, webpack-dev-server, webpack-dev-middleware y webpack-hot-middleware. Intenté todo lo que pude encontrar, pero nada funciona, estoy atascado.

Este es mi tsconfig:

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "moduleResolution": "node",
    "sourceRoot": "src",
    "allowJs": true,
    "baseUrl": "src",
    "lib": [
      "es2017", "dom"
    ]
  },
  "exclude": [
    "node_modules",
    "dist",
    "static"
  ],
  "typeAcquisition": {
    "include": [
      "src"
    ]
  }
}

Vi que las personas tienen problemas similares con los módulos y los espacios de nombres, pero ninguna respuesta estaba funcionando para mí. ¿Alguien tiene alguna idea de cuál podría ser el problema?

Respuesta #1

Como no pudimos abordar el problema de manera adecuada y debido a que este error nos impedía crear compilaciones exitosas, terminamos simplemente eliminando el archivo de declaración relevante (node_modules/aurelia-loader-webpack/dist/commonjs/aurelia-loader-webpack.d.ts).

Sé que esta no es la solución preferida, sin embargo funciona y no debería ser ningún problema, ya que el directorio node_modules debería ser ignorado de todos modos por el awesome-typescript-loader. De alguna manera no lo fue.

Respuesta #2

Puedes compararlo con una configuración de Webpack/Aurelia que funcione.

Aquí hay una secuencia de comandos de la consola de Windows que crea fácilmente dicho esqueleto. Tenga en cuenta que funciona con .NET, lo cual puede no coincidir con sus necesidades. Pero debería ser posible simplificar el esqueleto resultante para que funcione sin las partes de .NET.

Pasos :

dotnet new --install Microsoft.AspNetCore.SpaTemplates::*
mkdir [Your Project Folder]
cd [Your Project Folder]
dotnet new aurelia
dotnet restore
npm install

Establezca una variable de entorno para indicar a ASP.NET que se ejecute en modo de desarrollo:

  • Si estás utilizando PowerShell en Windows, ejecuta $Env:ASPNETCORE_ENVIRONMENT="Development"

  • Si estás usando cmd.exe en Windows, ejecuta setx ASPNETCORE_ENVIRONMENT "Development", y luego reinicia tu símbolo del sistema para que el cambio tenga efecto

  • Si estás usando Mac/Linux, ejecuta export ASPNETCORE_ENVIRONMENT=Development

Finalmente :

dotnet run