【问题标题】:Cannot find namespace 'Webpack' during Aurelia application build with Webpack在使用 Webpack 构建 Aurelia 应用程序期间找不到命名空间“Webpack”
【发布时间】:2017-12-28 23:02:38
【问题描述】:

我正在尝试使用 Webpack 设置 Aurelia 应用程序,但我一直收到错误消息:

[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'.

我安装了@types/webpack 和模块:webpack、webpack-dev-server、webpack-dev-middleware 和 webpack-hot-middleware。我尝试了所有能找到的方法,但没有任何效果,我被卡住了。

这是我的 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"
    ]
  }
}

我看到人们对模块和命名空间有类似的问题,但没有一个答案对我有用。任何人都知道可能是什么问题?

【问题讨论】:

  • 你的 package.json 是什么样的?
  • 你弄明白了吗?我遇到了同样的问题,将项目与骨架进行了比较,没有发现任何问题。我在:./node_modules/aurelia-webpack-plugin/dist/types/AureliaDependenciesPlugin.d.ts 和其他 27 个文件中遇到错误。但它编译成功
  • 任何想法如何解决这个问题?
  • 我使用的是aurelia-webpack-plugin@2.0.0-rc.3,但回滚到aurelia-webpack-plugin@2.0.0-rc.2,我不再收到这些错误。

标签: node.js typescript webpack aurelia


【解决方案1】:

由于我们无法很好地解决这个问题,并且因为这个错误阻止我们创建成功的构建,我们最终通过简单地删除相关的声明文件(node_modules/aurelia-loader-webpack/dist/commonjs/aurelia -loader-webpack.d.ts).

我知道这不是首选的解决方案,但是它可以工作并且不应该有任何问题,因为 awesome-typescript-loader 无论如何都应该忽略 node_modules 目录。有些不是。

【讨论】:

    【解决方案2】:

    您可以与有效的 Webpack/Aurelia 设置进行比较。

    这里有一系列 Windows 控制台命令,可以轻松创建这样的框架。请注意,它适用于 .NET,但可能不符合您的需求。但是应该可以简化生成的骨架以在没有 .Net 部分的情况下工作。

    步骤:

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

    设置一个环境变量告诉 ASP.NET 在开发模式下运行:

    • 如果您在 Windows 中使用 PowerShell,请执行 $Env:ASPNETCORE_ENVIRONMENT = "Development"

    • 如果您在 Windows 中使用 cmd.exe,请执行 setx ASPNETCORE_ENVIRONMENT "Development",然后重新启动您的命令 提示使更改生效

    • 如果您使用的是 Mac/Linux,请执行 export ASPNETCORE_ENVIRONMENT=Development

    最后:

    dotnet run
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-13
      • 2017-09-07
      • 1970-01-01
      • 2020-06-06
      • 1970-01-01
      • 2019-01-11
      • 2019-06-18
      • 2017-07-14
      相关资源
      最近更新 更多