我正在用类型记录2.0构建angular2应用程序。我的应用程序运行良好,但我遇到了webpack包和热重装的问题。
要创建更新的bundle.js并为新创建的bundle.js运行server,我必须分别执行两个命令。
webpack和webpack-dev-server
我只想用一个命令来做这件事,那就是npm-start,并通过为任何文件(html or js)的更改设置一个watch来重新加载服务器。
为此,我将脚本包含在我的package.json中,如下所示:
"scripts": {
"start": "webpack-dev-server --hot --inline"
},但它不会刷新我的bundle.js。
下面是我的webpack.config.js
var path = require("path");
var APP_DIR = path.resolve(__dirname, "app");
var config = {
entry: path.resolve(APP_DIR + "/main.ts"),
output: {
path: APP_DIR,
publicPath: APP_DIR,
filename: "bundle.js"
},
watch: true,
resolve: {
extensions: ['', '.webpack.js', ".web.js", ".ts", ".js", ".jsx"]
},
module: {
loaders: [
{
test: /\.tsx?$/,
loader: "ts-loader",
exclude: "node_modules"
}
]
}
}
module.exports = config;我还分析了这个怎样的问题并使用了前面提到的插件,但是得到了错误:throw new Error('output.path is not. Define output.path.');,这是在config中定义的。
有人能查出是怎么回事吗?而且,是否有可能在没有bundle.js的情况下刷新plugin并使用单个命令监视?
发布于 2017-04-03 18:15:13
webpack-dev-server不会将任何文件写入磁盘,而且它在没有文件存在的情况下工作,因为当路径被击中时,它将从内存中提供该文件。如果您没有首先构建它(通过运行webpack)就对其进行测试,那么它应该仍然工作,如果没有,您没有找到正确的路径并从您的文件系统中获取包。
这里是这样的,因为您已经将output.publicPath设置为app目录的绝对路径。这意味着只有当您将bundle.js作为/full/path/to/app/bundle.js请求时才会提供它。您真正想要的是在/app/bundle.js上服务的包。为此,您可以将公共路径更改为/app/。
output: {
path: APP_DIR,
publicPath: "/app/",
filename: "bundle.js"
},https://stackoverflow.com/questions/43180075
复制相似问题