我有一个非常奇怪的事情发生。
我在我的开发环境中处理这个项目,
它将在第一次浏览器请求时编译webpack。
现在,突然之间,这一切都没有发生,导致所有的javascript和风格失败,应用程序无法正常渲染。
Rails服务器控制台甚至不显示[Webpacker]正在编译...行
如果我自己启动webpack-dev-server,它可以工作,但是由于某种原因,rails服务器停止了它自己的工作。我修改了webpack_compile_output行:在webpacker.yml中将false设置为true,但是Rails服务器仍然不显示与Webpack有关的任何内容。
这真的很奇怪。我没有添加任何gem或更新任何版本的节点或webpack。我确实在我的机器上全局更新了Git从版本1.9到版本2.24,但仅此而已。
有什么想法吗?
更新:(根据要求,这里是我的config/wenpacker.yml的内容
default: &default
source_path: app/javascript
source_entry_path: packs
public_root_path: public
public_output_path: packs
cache_path: tmp/cache/webpacker
check_yarn_integrity: false
webpack_compile_output: true
# Additional paths webpack should lookup modules
# ['app/assets', 'engine/foo/app/assets']
resolved_paths: []
# Reload manifest.json on all requests so we reload latest compiled packs
cache_manifest: false
# Extract and emit a css file
extract_css: false
static_assets_extensions:
- .jpg
- .jpeg
- .png
- .gif
- .tiff
- .ico
- .svg
- .eot
- .otf
- .ttf
- .woff
- .woff2
extensions:
- .mjs
- .js
- .sass
- .scss
- .css
- .module.sass
- .module.scss
- .module.css
- .png
- .svg
- .gif
- .jpeg
- .jpg
development:
<<: *default
compile: true
# Verifies that correct packages and versions are installed by inspecting package.json, yarn.lock, and node_modules
check_yarn_integrity: false
# Reference: https://webpack.js.org/configuration/dev-server/
dev_server:
https: false
host: localhost
port: 3035
public: localhost:3035
hmr: false
# Inline should be set to true if using HMR
inline: false
overlay: true
compress: true
disable_host_check: true
use_local_ip: false
quiet: false
headers:
'Access-Control-Allow-Origin': '*'
watch_options:
ignored: '**/node_modules/**'
test:
<<: *default
compile: true
# Compile test packs to a separate directory
public_output_path: packs-test
production:
<<: *default
# Production depends on precompilation of packs prior to booting for performance.
compile: false
# Extract and emit a css file
extract_css: true
# Cache manifest.json for performance
cache_manifest: true
6条答案
按热度按时间uyhoqukh1#
rails s
时,您会看到如下所示的内容:如果您对Webpack资源中的
js
(或css
/scss
)进行了更改:到某个时候,所有这些操作都会停止-您将“不得不”手动运行**
rails s
* 和 *./bin/webpack-dev-server
**。到目前为止,我注意到的是,当您运行webpack-dev-server
时(例如,更新config/webpacker.yml
时),会触发此操作-它确实在该文件本身的注解中说明了这一点:# Note: You must restart bin/webpack-dev-server for changes to take effect
请尝试以下 * 解决方法 *:
1.停止
Rails server
和webpack-dev-server
/app/javascript/packs/application.js
文件进行一些(临时)更改//import 'bootstrap'
rails s
(仅,* 不 *webpack-dev-server
)bootstrap
我认为(猜测)是某个缓存/同步问题,通过对
application.js
进行一些更改,该问题已“修复/(重置?)”这......
uttx8gqw2#
如果webpacker停止响应application.scss或application.js中的更改,请在终端中运行以下命令:
oyjwcjzk3#
我今天遇到了这个问题,在阅读了这个问题并做了一些额外的调试之后,我意识到Rails Webpacker失败了,因为我有另一个项目已经在运行Webpacker,这混淆了Rails版本。
关闭另一个Webpacker并重新启动Rails服务器立即修复了这个问题。
irlmq6kh4#
当我试图刺激反射时,这让我抓狂。这对我很有效(虽然后来有另一个刺激反射问题与
ActionCable connection is not open!
之后,这是进步。1.在终端中执行
rails dev:cache
,这可能会禁用缓存1.运行
rails server
1.此后,在终端中重新运行
rails dev:cache
(关闭Rails服务器后)。在
environments/development.rb
中,相关配置为:6ioyuze25#
我的例子是我使用
nvm
更改了我的node
版本。当一切都停止编译时,我忘记了切换版本只是卸载了yarn
,这是正常的,因为我使用的是另一个node
/npm
映像,而且yarn
是由npm
全局安装的...所以:1.运行
bin/rails webpacker:install
,它会说:“未安装Yarn。请从https://yarnpkg.com/lang/en/docs/install/ Exiting下载并安装Yarn!”1.使用
npm i -g yarn
重新安装Yarn1.运行您喜欢的
bin/rails s
命令,就完成了🎉注意:你会再次看到[Webpacker]在你的终端做它的工作
vlju58qv6#
我有一个带webpacker编译的isse没有在测试环境中运行,我已经有一段时间没有接触过这个项目了。
bundle update webpacker
解决了这个问题。奇怪的是,恢复到旧的Gemfile.lock
现在也可以工作,所以我不知道到底是什么问题。