Webpack - 没有输出文件,没有报告错误
Posted
技术标签:
【中文标题】Webpack - 没有输出文件,没有报告错误【英文标题】:Webpack - No Output File, No Errors Reported 【发布时间】:2016-03-15 01:05:20 【问题描述】:我正在学习 Webpack 并一次又一次地学习它。在最新版本中,发生了一些非常奇怪的事情。 CLI 报告一切正常,输出文件 dress_aphrodite.js
是 emitted
,但在文件夹中找不到它。
以下是日志: 来自 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 - 没有输出文件,没有报告错误的主要内容,如果未能解决你的问题,请参考以下文章