标签: webpack-dev-server

Webpack 和 Precss 不会在 @import 文件更改时重新加载

我正在设置一个基本的 Webpack 安装,并希望使用PostCSSPreCSS插件在 @imported 文件中自动重新加载浏览器预处理的 CSS 。目前,如果我修改并保存 @imported 文件,浏览器不会刷新(下面示例中的 body.css)。如果我随后保存根引用的 CSS 文件 (styles.css),则浏览器会刷新并反映对 @imported 文件所做的任何更改。

我尝试使用可配置的 webpack-dev-server,并使用 server.js。我试过没有和安装热模型重新加载(HMR)。

有没有办法让 webpack 监视 @imported CSS 文件,或者我在这里根本错过了什么?

包.json

"dependencies": {
  "react": "^0.14.0",
  "react-dom": "^0.14.0"
},
"devDependencies": {
  "autoprefixer": "^6.3.1",
  "css-loader": "^0.23.1",
  "extract-text-webpack-plugin": "^1.0.1",
  "postcss-loader": "^0.8.0",
  "postcss-scss": "^0.1.3",
  "precss": "^1.4.0",
  "react-hot-loader": "^1.3.0",
  "style-loader": "^0.13.0",
  "webpack": "^1.12.13",
  "webpack-dev-server": "^1.14.1"
},
"scripts": {
  "test": "echo \"Error: no test specified\" && exit 1",
  "start": "node server.js",
  "start-dev-server": "webpack-dev-server 'webpack-dev-server/client?/' --host 0.0.0.0 --port 9090 …
Run Code Online (Sandbox Code Playgroud)

reload webpack webpack-dev-server postcss webpack-hmr

3
推荐指数
1
解决办法
2648
查看次数

index.html更改时浏览器自动重新加载

webpack-dev-server在一个非常简单的设置中使用.我发现,即使服务器会自动触发一个浏览器重装当index.js文件发生更改,它并不会触发重新加载时index.html的变化.我怎样才能做到这一点?

这是我的设置:

的package.json

{
  "name": "html-reload",
  "version": "1.0.0",
  "description": "",
  "main": "src/index.js",
  "scripts": {
        "build": "node_modules/webpack/bin/webpack.js",
        "start": "webpack-dev-server --host 0.0.0.0 --port 8383 --content-base dist"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "webpack": "^1.12.14",
    "webpack-dev-server": "^1.14.1"
  }
}
Run Code Online (Sandbox Code Playgroud)

webpack.config.js

module.exports = {
    entry: './src/index.js',
    output: {
        path: 'dist',
        filename: 'bundle.js'
    }
};
Run Code Online (Sandbox Code Playgroud)

我启动了webpack-dev-serverwith:npm run start并将浏览器指向:

http://localhost:8383/webpack-dev-server/index.html
Run Code Online (Sandbox Code Playgroud)

我所做的每一项更改都会src/index.js在浏览器中自动刷新,但我所做的更改并非如此dist/index.html.

webpack-dev-server

3
推荐指数
1
解决办法
2421
查看次数

如何减少 webpack 开发服务器重建时间

我正在开发一个在本地使用大型 3d 资产的 Javascript 游戏。我需要那些带有 webpack 的资源,比如:

require('../../assets/models/house.obj')
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,做这样的事情给了我一个很大的初始包和很长的初始构建时间:

[0]           main-ad421c4138968fe0a8ae.js    14.8 MB       0  [emitted]  main
[0] webpack built ad421c4138968fe0a8ae in 26610ms
Run Code Online (Sandbox Code Playgroud)

我对大的构建时间没意见,但真正的问题是使用开发服务器的重建时间。

[1] [piping] File src/Game.js has changed, reloading.
[0] webpack built 80f5c6c75e347304002c in 10534ms
Run Code Online (Sandbox Code Playgroud)

重建包需要 10-20 秒,到达浏览器需要更长的时间。如果可能的话,我想减少这个时间。

我试过完全忽略我的资产文件夹:

new webpack.IgnorePlugin( /assets\/*/ ),
Run Code Online (Sandbox Code Playgroud)

但是正如你可能猜到的,这意味着我不能再require()通过它的 loacl 路径成为资产,这基本上是使用 webpack 的全部意义所在。

我还尝试使用webpack watch ignore 插件忽略我的资产文件夹和节点模块:

new WatchIgnorePlugin([
    path.resolve( __dirname, '../assets/models/' ),
    path.resolve( __dirname, '../node_modules/' )
]),
Run Code Online (Sandbox Code Playgroud)

然而,这也不会减少构建时间。我提交了一个错误,因为看起来插件实际上根本没有做任何事情。

javascript webpack webpack-dev-server

3
推荐指数
1
解决办法
1987
查看次数

如何设置 cookie 从服务器发送到不同端口上的客户端

我有一个后端服务器(由 Rails 提供支持),其 API 由在 Node 简单开发服务器上运行的 HTML5 前端使用。

两者都在同一台主机上:我的机器。

当我从前端登录到后端时,rails 向我发送了会话 cookie。我可以在响应头中看到它,问题是浏览器不保存它。

政策是正确的,如果我直接从 Rails 应用程序提供相同的前端,cookie 设置正确。

我能看到的唯一区别是,当前端在 Node 服务器上运行时,它在端口上运行,8080而 rails 在端口上运行3000。我知道 cookie 不应该是特定于端口的,所以我错过了这里发生的事情。

有什么想法吗?解决方案?

(我需要能够以这种方式保持设置,以便让前端从 Node 提供服务,后端在不同端口的导轨上提供服务)

cookies port ruby-on-rails webpack-dev-server

3
推荐指数
1
解决办法
2939
查看次数

Docker容器中的Vue.js Webpack模板:如何添加Webpack-Dev-Server --watch-poll标志?

我正在我创建的docker容器中运行基础Vue.js Webpack模板(https://github.com/vuejs-templates/webpack/)的webpack/webpack-dev-server部分.容器还包含vue CLI以创建新项目(如果需要,可以在此处获取我的容器:https://hub.docker.com/r/ncevl/webpack-vue/).

从webpack-simple模板移动到此模板后,热重新加载不起作用.

一切都在使用Webpack-Simple模板,您可以在这里克隆/查看:https://github.com/vuejs-templates/webpack-simple

我可以使用以下webpack-development-server启动命令运行简单模板(使用热重载按预期工作):

webpack-dev-server --hot --inline --progress --host 0.0.0.0 --watch-poll
Run Code Online (Sandbox Code Playgroud)

也就是说,webpack模板的完整(非简单)版本似乎没有使用webpack-dev-server启动命令,而是使用build/dev-server.js(https:// github)中引用的其他中间件. com/vuejs-templates/webpack/blob/master/template/build/dev-server.js)和webpack dev config.

由于--watch-poll是让WDS热重载功能在上一个项目中的docker容器中工作的关键,我的想法是我需要做一些与webpack-hot-middleware类似的东西,但我看不到他们的文档中的任何内容(在这里:https://github.com/glenjamin/webpack-hot-middleware)都谈到了改为基于轮询的方法.

我不是100%肯定轮询标志会起作用,因为我可以看到容器在我做出更改时重新编译我的源代码.如果我手动刷新,我也可以在浏览器中看到更改.

如果我在chrome dev工具中检查浏览器中的页面,然后转到network/XHR我可以看到浏览器确实从webpack-dev-server接收信息,但在视觉上它不会更新.

给出上面的假设我认为websockets(或者我认为使用的socket.io)正在浏览器和WDS之间进行通信,所以这可能是某种浏览器缓存问题?

我检查了我的控制台,发现这看起来像一个标题问题:

在此输入图像描述

作为参考,该图像的文本错误(为了让任何有相同问题的人更容易找到这篇文章)是:

EventSource无法加载http:// __ webpack_hmr /.请求的资源上不存在"Access-Control-Allow-Origin"标头.因此不允许来源' http://0.0.0.0:8080 '访问.

使用webpack-simple Vue.js模板时,Hot-Reload/Hot Module Reload再次使用这个相同的容器设置.

我想知道是否有人遇到类似的事情,或者对如何添加轮询选项有任何想法.我想我的替代方案是回滚到更基本的webpack配置并重建那部分东西以使用传统的webpack-dev-server/webpack配置但是给出上述我不确定是否会解决它.

node.js docker webpack vue.js webpack-dev-server

3
推荐指数
1
解决办法
2709
查看次数

如何在 Webpack 中创建多个页面?

这似乎是一个业余问题,但我无法使用 Webpack 创建其他页面

这是我的 webpack.config.js 文件

var HtmlWebpackPlugin = require('html-webpack-plugin')
var HtmlWebpackHarddiskPlugin = require('html-webpack-harddisk-plugin')
var ExtractTextPlugin = require('extract-text-webpack-plugin')
var webpack = require('webpack')
var path = require('path')

var isProd = process.env.NODE_ENV === 'production' // true or false
var cssDev = ['style-loader', 'css-loader', 'sass-loader']
var cssProd = ExtractTextPlugin.extract({
  fallback: 'style-loader',
  loader: ['css-loader', 'sass-loader'],
  publicPath: '/dist'
})
var cssConfig = isProd ? cssProd : cssDev

module.exports = {
  entry: {
    app: './src/app.js'
  },
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: '[name].bundle.js'
  },
  module: { …
Run Code Online (Sandbox Code Playgroud)

javascript node.js webpack webpack-dev-server pug

3
推荐指数
1
解决办法
4958
查看次数

模块解析失败:woff woff2 和 ttf 文件 webpack 的意外字符

我有webpack.config.js文件,并为单个模块块中的每种字体类型添加了加载程序,但是当我运行时yarn start

webback 在终端中成功遵守了此详细信息

  f4769f9bdb7466be65088239c12046d1.eot    20.1 kB          [emitted]         
448c34a56d699c29117adc64c43affeb.woff2      18 kB          [emitted]         
 fa2772327f55d8198301fdb8bcfc8158.woff    23.4 kB          [emitted]         
  e18bbf611f2a2e43afc071aa2f4e1512.ttf    45.4 kB          [emitted]         
  89889688147bd7575d6327160d64e760.svg     109 kB          [emitted]         
                             bundle.js    1.56 MB       0  [emitted]  [big]  main
                           favicon.ico    1.15 kB          [emitted]         
                            index.html  605 bytes          [emitted]  
Run Code Online (Sandbox Code Playgroud)

并在浏览器中打开页面,并在其上应用了 bootstrap css 但是在控制台中,它为woff woff2ttf文件提供了多个错误(参见图片)

模块解析失败:意外字符 '' (1:4)
您可能需要适当的加载程序来处理此文件类型。
(此二进制文件省略了源代码)

控制台错误

包.json

"dependencies": {
    "bootstrap": "^3.3.7",
    "css-loader": "^0.28.7",
    "extract-text-webpack-plugin": "^3.0.2",
    "file-loader": "^1.1.5",
    "history": "^4.7.2",
    "html-webpack-plugin": "^2.30.1",
    "less": "^2.7.3",
    "less-loader": "^4.0.5",
    "path": "^0.12.7",
    "postcss-loader": "^2.0.8",
    "react": …
Run Code Online (Sandbox Code Playgroud)

javascript webpack-dev-server webpack-2

3
推荐指数
1
解决办法
9600
查看次数

Webpack开发服务器的“之前”功能

我正在处理一个弹出的Create React App项目,并查看webpack开发服务器上的文档,它们看起来有点裸露:https ://webpack.js.org/configuration/dev-server/#devserver-before

但我试图查看是否可以执行以下操作:

before(app){
  // read cookie for user session
  // send user ID in cookie to external API
  // retrieve user object from API
  // attach user object to response, to be _somehow_ accessed via the React app client side
}
Run Code Online (Sandbox Code Playgroud)

我知道这是伪代码,但我什么很不清楚究竟你可以在这个中间件中做,在挂钩到创建作出反应的index.html和上述客户端的应用程序的渲染方面反应应用

在文档中,它说您可以定义一个路由处理程序,如下所示:

app.get('/some/path', function(req, res) { }

但是我觉得那将不会有用,因为那样一来您将无法回到Webpack开发服务器的渲染过程中来?

node.js express webpack webpack-dev-server create-react-app

3
推荐指数
1
解决办法
3180
查看次数

为 .ejs 设置 Webpack

我有使用 ejs 文件的项目。唯一的问题是我在服务器端使用 ejs 文件。代码如下。我需要以某种方式设置 webpack,它会即时插入 index.ejs<script src="frontend/build/..."></script><style src="frontend/build/..."/>. 我只知道我应该以某种方式使用 webpack-middleware。如果有人有经验,请帮我设置。

// webpack.config.js

import path from 'path';

import ExtractTextPlugin from 'extract-text-webpack-plugin';
import CleanWebpackPlugin from 'clean-webpack-plugin';

const inProduction = process.argv[process.argv.length - 1]
  .match(/[a-z]+$/g)[0] === 'production';

const basic = {
  entry: {
    app: path.join(__dirname, 'frontend/source/scripts/main.js'),
  },
  output: {
    path: path.join(__dirname, 'frontend/build'),
    filename: '[name].[chunkhash].js',
  },
};

const module = {
  rules: [{
      test: /\.css$/,
      use: ExtractTextPlugin.extract({
        use: ['css-loader'],
      }),
    },
    {
      test: /\.js$/,
      use: ['babel-loader'],
      exclude: ['/node_modules'],
    },
  ], …
Run Code Online (Sandbox Code Playgroud)

javascript ejs webpack webpack-dev-server

3
推荐指数
1
解决办法
1万
查看次数

使用方括号参数而不是纯文本的 Webpack 配置输出文件名

webpack.config.js,在output.filename我看到方括号。这意味着什么?使用它和纯文本有什么区别?

output: {
    filename: '[name].js',

    // Webpack dev middleware, if enabled, handles requests for this URL prefix
    publicPath: 'dist/'
},
Run Code Online (Sandbox Code Playgroud)

filenames build webpack webpack-dev-server webpack-2

3
推荐指数
1
解决办法
1690
查看次数