纱线-> npm切换后,Vue CLI项目不会热加载。也没有配置文件?

时间:2019-02-08 16:40:41

标签: vue.js npm webpack yarnpkg vue-cli

由于客户/同事希望我必须切换到npm。该项目是使用Vue CLI和Yarn作为默认程序包管理器创建的。

我首先认为没什么大不了,所以我删除了node_modules文件夹和yarn.lock文件。然后我先运行/*************************************************************************\ * Copyright (C) Michael Kerrisk, 2018. * * * * This program is free software. You may use, modify, and redistribute it * * under the terms of the GNU General Public License as published by the * * Free Software Foundation, either version 3 or (at your option) any * * later version. This program is distributed without any warranty. See * * the file COPYING.gpl-v3 for details. * \*************************************************************************/ /* strerror_tls.c An implementation of strerror() that is made thread-safe through the use of thread-local storage. See also strerror_tsd.c. Thread-local storage requires: Linux 2.6 or later, NPTL, and gcc 3.3 or later. */ #define _GNU_SOURCE /* Get '_sys_nerr' and '_sys_errlist' declarations from <stdio.h> */ #include <stdio.h> #include <string.h> /* Get declaration of strerror() */ #include <pthread.h> #include "tlpi_hdr.h" #define MAX_ERROR_LEN 256 /* Maximum length of string in per-thread buffer returned by strerror() */ /* |||||||||||||||||| // vvvvvvvvvvvvvvvvvv */ static __thread char buf[MAX_ERROR_LEN]; /* Thread-local return buffer */ char * strerror(int err) { if (err < 0 || err >= sys_nerr || sys_errlist[err] == NULL) { snprintf(buf, MAX_ERROR_LEN, "Unknown error %d", err); } else { strncpy(buf, sys_errlist[err], MAX_ERROR_LEN - 1); buf[MAX_ERROR_LEN - 1] = '\0'; /* Ensure null termination */ } return buf; } static void * threadFunc(void *arg) { char *str; printf("Other thread about to call strerror()\n"); str = strerror(EPERM); printf("Other thread: str (%p) = %s\n", str, str); return NULL; } int main(int argc, char *argv[]) { pthread_t t; int s; char *str; str = strerror(EINVAL); printf("Main thread has called strerror()\n"); s = pthread_create(&t, NULL, threadFunc, NULL); if (s != 0) errExitEN(s, "pthread_create"); s = pthread_join(t, NULL); if (s != 0) errExitEN(s, "pthread_join"); /* If strerror() is not thread-safe, then the output of this printf() be the same as that produced by the analogous printf() in threadFunc() */ printf("Main thread: str (%p) = %s\n", str, str); exit(EXIT_SUCCESS); } ,然后运行npm install

它可以正常工作和编译,当我更改文件时可以重新编译,到目前为止一切都很好,但这是一个很奇怪的部分:所做的更改不会反映在浏览器中。我必须手动刷新页面。

我试图查看vue或webpack的配置文件。但是没有。没有Webpack配置,没有vue cli配置,没有构建文件夹。

我所拥有的是: -.eslintrc.js -.browserlistrc -babel.config.js -postcss.config.js

我不知道还要寻找什么?有人知道这可能是什么吗?

非常感谢, -J

2 个答案:

答案 0 :(得分:0)

Vue CLI依赖于@vue/cli-service,其行为与Facebook的Create React App(react-scripts)完全一样。

  

如果您熟悉create-react-app,则@ vue / cli-service大概是   等效于react-scripts,尽管功能集是   不同。

     

https://cli.vuejs.org/guide/#cli-service

所以他们两个都通过将所有捆绑配置(例如webpack.config.js)隐藏在地​​毯下来为您“简化”项目的配置。在大多数情况下,这很方便,除非您决定做一些花哨的事情(例如开关包管理器)。在Create React App中,可以通过运行yarn ejectnpm run eject来解决此问题,但是在Vue CLI平台上,您已被锁定。因此,没有简单的方法可以使所有基础配置文件显示和修复。其中的错误位。

要感到惊讶吗?..

答案 1 :(得分:0)

在我的情况下是什么原因(我有Linux操作系统)

似乎值max_user_watches/proc/sys/fs/inotify/max_user_watches中 正在影响webpack =>,从而干扰了热重载。

检查您的实际值

$cat /proc/sys/fs/inotify/max_user_watches
16384

以我的情况为16384,但这还不够。 因此,您也需要增加价值。

如果具有Linux操作系统,则解决方案:

创建文件:

sudo nano /etc/sysctl.d/90-override.conf

并在其中填充:

fs.inotify.max_user_watches=200000

对于我来说,200000似乎足够了,如果需要,您可以拥有更高的价值。

创建文件并添加值后,只需重新启动PC即可。