为什么webpack仍然生成旧的目录包文件?
我有一个简单的应用程序使用webpack来编译我的js有一个入口点为./src/app.js
和输出为./public/dist/app.bundle.js
。
以前输出目录是 ./dist/app.bundle.js
在webpack --watch
模式下,我对src代码做了一些修改,它会生成旧path./dist/app.bundle.js
这个文件以及到新目录? 请告诉什么是错的
webpack.config.js
var path = require("path"); module.exports = { entry: path.resolve(__dirname, "./src/app.js"), output: { path: path.resolve(__dirname), filename: "./public/dist/app.bundle.js", publicPath: "/public/", } };
npm -v 3.10.10
node -v v6.10.2
webpack:3.10.0
var path = require("path"); module.exports = { entry: path.resolve(__dirname, "./src/app.js"), output: { path: path.resolve(__dirname, "public/dist"), filename: "app.bundle.js", publicPath: "dist", } };
output.filename
指定磁盘上每个输出文件的名称。 你不能在这里指定绝对path! output.path
选项确定文件在磁盘上的位置。 filename
仅用于命名单个文件。
output.path
输出目录作为绝对path(必需)。
output.publicPath
publicPath
指定浏览器中引用的输出文件的公共URL地址。 对于embedded<script>
或<link>
标签或引用资产(如图像url()
的加载程序,当其与磁盘上的位置(由path
指定url()
,将使用publicPath
作为文件的href
或url()
)。 当您想要将某些或所有输出文件托pipe在不同的域或CDN上时,这会很有帮助。 Webpack开发服务器也使用它来确定输出文件预期从哪个path提供服务。
请参阅这里的文档
调整webpack.config
的output
configuration,如下所示。
var path = require("path"); module.exports = { entry: path.resolve(__dirname, "./src/app.js"), output: { path: path.resolve(__dirname, "public/dist"), filename: "[name].bundle.js", publicPath: "/public/", } };
请参阅: Webpack输出