【问题标题】:VSTS webpack build task cannot find CLIVSTS webpack 构建任务找不到 CLI
【发布时间】:2018-07-10 18:23:37
【问题描述】:

我在名为 MyWebApp.Web 的项目目录中有一个 .NET (4.7) Web 应用程序

作为我运行 npm install 的构建过程的一部分,webpack-cli 是一个依赖项。

但是当我运行 webpack build task 并将 MyWebApp.Web 设置为工作目录时,我收到以下错误:

Error: Cannot find module 'D:\a\1\s\MyWebApp.Web\node_modules\webpack\bin\webpack.js'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)
    at Function.Module._load (internal/modules/cjs/loader.js:507:25)
    at Function.Module.runMain (internal/modules/cjs/loader.js:742:12)
    at startup (internal/bootstrap/node.js:236:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:560:3)

如果我尝试通过 NPM 脚本运行 webpack,我会收到 webpack 内置的交互式“必须安装 CLI”提示,指示找不到模块。

我是否缺少任何需要让 webpack “看到”节点模块的东西?

【问题讨论】:

  • 您确定您的 npm 软件包安装正确吗?您是否在打开生产标志的情况下使用 npm install ?这将阻止安装您的开发依赖项。
  • @Calidus 这很尴尬,NODE_ENV 确实设置为“生产”。关闭标志,现在 webpack 运行良好。
  • @JasonElkin 问题解决了吗?然后你可以发布你的解决方案作为答案并接受它。这可能对阅读此主题的其他社区成员有所帮助。

标签: asp.net webpack azure-devops


【解决方案1】:

事实证明,在“变量”选项卡中,process.env.NODE_ENV 被设置为 production,因此没有安装开发依赖项。

删除这个环境变量解决了这个问题。

我这样做是为了调用 webpack 的“生产”模式(部分原因是 webpack Visual Studio extension 是这样工作的)。这种方法始终适用于开发环境,因为这些模块已经从以前的开发版本中安装,但在 VSTS 构建代理上,我们只运行过生产版本。

我现在按照webpack documentation,使用webpack-merge 设置了单独的webpack.common.js、webpack.config.js(用于开发)和webpack.prod.js 文件。这将不同的配置定位到不同的环境,而不是依赖于环境变量。

【讨论】:

    【解决方案2】:

    试试:

    npm i webpack webpack-cli -g --save-dev
    

    【讨论】:

    • 这只是重新安装在npm install 最初运行时已经安装的包。 webpack 构建任务仍然失败,就好像 ./MyWebApp.Web/node_modules/ 目录不存在一样。
    • 它实际上是在全局安装它;您是否尝试过删除 node_modules 文件夹并执行 npm i ?
    • 不完全是,这是一个 VSTS 构建任务。 VSTS 每次构建都从存储库中提取(因此节点模块为空)并运行一系列构建任务,npm i 就是其中之一。我知道如何调试 webpack 并使其在本地工作等。我的问题是 VSTS 特定的。
    猜你喜欢
    • 2017-05-08
    • 2023-03-26
    • 2017-03-18
    • 2020-06-30
    • 1970-01-01
    • 2018-03-07
    • 1970-01-01
    • 2018-09-26
    • 1970-01-01
    相关资源
    最近更新 更多