Webpack - 没有输出文件,没有报告错误

Posted

技术标签:

【中文标题】Webpack - 没有输出文件,没有报告错误【英文标题】:Webpack - No Output File, No Errors Reported 【发布时间】:2016-03-15 01:05:20 【问题描述】:

我正在学习 Webpack 并一次又一次地学习它。在最新版本中,发生了一些非常奇怪的事情。 CLI 报告一切正常,输出文件 dress_aphrodite.jsemitted,但在文件夹中找不到它。

以下是日志: 来自 CLI:

http://localhost:8080/webpack-dev-server/
webpack result is served from /app/
content is served from ./app
Hash: 5334867c12acfa65ba90
Version: webpack 1.12.9
Time: 1966ms
                    Asset    Size  Chunks             Chunk Names
    dress_aphrodite.js  390 kB       0  [emitted]  main
dress_aphrodite.js.map  479 kB       0  [emitted]  main
chunk    0 dress_aphrodite.js, dress_aphrodite.js.map (main) 354 kB [rendered]
    [0] multi main 52 bytes 0 [built]
    [1] ./~/babel-polyfill/lib/index.js 209 bytes 0 [built]
    [2] ./~/core-js/shim.js 4.31 kB 0 [built]
    [3] ./~/core-js/modules/es5.js 10.2 kB 0 [built]
    ...
  [263] ./~/ansi-regex/index.js 135 bytes 0 [built]
webpack: bundle is now VALID.

所以上面的一切看起来都很好。但是,主文件夹或./app 文件夹中没有dress_aphrodite.js 文件。

这是 webpack.config.js 文件:

var path = require ('path');
var webpack = require ('webpack');

module.exports = 
    entry : [
        'babel-polyfill',
        './app/da',
        'webpack-dev-server/client?http://localhost:8080'
    ],
    resolve : 
        extension : ['', '.js', '.jsx', '.json']
    ,
    output : 
        publicPath : '/app/',
        filename : 'dress_aphrodite.js'
    ,
    debug : true,
    devtool : 'source-map',
    devServer : 
        contentBase : './app'
    ,
    module: 
        loaders: [
            
                test : /\.js$/,
                include : path.join (__dirname, 'app'),
                loader : 'babel-loader',
                query : 
                    presets : ["es2015"]
                
            
        ]
    
;

最后,以防万一,任何人都需要 package.json 文件,这里是:


  "name": "dress_aphrodite",
  "version": "1.0.0",
  "description": "",
  "main": "dress_aphrodite.js",
  "scripts": 
    "start": "node_modules/webpack-dev-server/bin/webpack-dev-server.js"
  ,
  "author": "",
  "license": "ISC"

关于为什么没有发出/渲染输出文件的任何帮助?

谢谢

编辑:尝试不使用Output.publicPath(由YuWu 建议),仍然没有变化。将其更改为 path 属性并且仍然没有更改。

编辑 2:作为测试,我将 html-webpack-plugin 添加到 webpack.config.js 文件中以查看它是否会由 webpack 发出,是的,显然它也已发出,但我看不见。

编辑 3:(发布与 YuWu 的慷慨对话):webpack-dev-server 运行良好,并在 js 文件中显示 window.alert 以及通过 html-webpack-plugin 创建的动态 html 文件。我记得在全球范围内安装了webpack-dev-server。那可能是存储html和js发出的文件的地方吗?我在哪里可以找到 Ubuntu 15.1 中的全局目录? (不应该是这种情况,因为 package.json 指向本地目录路径以引用“start”属性...)

编辑 4:这是我在 webpack github 问题部分发布的问题。我的进一步调查结果也记录在 cmets 中。 https://github.com/webpack/webpack/issues/1736

【问题讨论】:

如果去掉“输出”字段中的“publicPath”会怎样? @YuWu 刚试过,没有变化。仍然没有错误,也没有输出文件。 输出怎么样: path: path.resolve(__dirname, ''), filename: 'dress_aphrodite.js' , @YuWu ,这太疯狂了。重新启动系统并更改输出后:path: __dirname, filename: 'dress_aphrodite.js',webkit-dev-server 正在工作。 Chrome 开发工具中的“源”选项卡显示 html 和 js 文件。但是,在文件夹中找不到它们?! @YuWu ,是的,您的建议也有效,但是,这两个文件(由 html-plugin 生成的 HTML 和 webpack 输出的 js 文件仍然不在主目录或“app”目录中)... 【参考方案1】:

使用此配置,您不会看到任何输出到磁盘的内容。

您已将webpack-dev-server 定义为您的入口点之一,并已开始通过项目中的devServer 属性设置开发服务器

webpack-dev-server 通过运行 webpack 工作,并将编译的内容存储在内存中。这样,当您对其中一个文件进行更改并且webpack-dev-server 重新编译更改时,它可以快速完成。

通过将这些文件存储在内存中,我们消除了 I/O 延迟,从而使 webpack 能够快速完成重新编译并将文件快速提供给您的浏览器。

如果您希望将文件输出到磁盘上,您应该运行 webpack 而不是 webpack-dev-server 并从配置的入口点删除 webpack-dev-server/...

【讨论】:

以上是关于Webpack - 没有输出文件,没有报告错误的主要内容,如果未能解决你的问题,请参考以下文章

FreeBSD 上的 NFS V4 托管,客户端和服务器都可以安装,但文件系统上没有读取或写入,报告输入/输出错误

在 tsx 编译错误中导入 jsx 文件

Vue:webpack 没有在生产中加载 css

Webpack 报告错误的版本号...?

Webpack 不捆绑输出 JS 文件

Webpack:静音输出