Vue CLI 3无法要求'fs'

Hwa*_*ong 2 node.js vue.js

我正在使用Vue CLI 3开发用于Windows 10的计划软件。

该应用程序需要使用“ fs”模块,但是..我找不到路。任何地方都没有webpack配置文件。我该如何解决这个问题?

Vue CLI 3如此不同,以至于我无法使用stackoverflow引入的所有方法。

请帮我。

Ser*_*eon 10

在引导应用程序时使用FS模块

可以使用fs自举应用程序时。例如,您可以读取文件系统中的文件以获取某些内容,然后将其添加到应用程序中以某种方式使用它。如果这是您想要的(我怀疑),则可以在您的中设置以下内容vue.config.js

const fs = require('fs');

const someFileContents = fs.readFileSync('my-path-to-the-file');

module.exports = {
  lintOnSave: true,

  configureWebpack: config => {
    return {
      plugins: [
        new webpack.DefinePlugin({
          'somevar': someFileContents,
        })
      ]
    }
  },
}
Run Code Online (Sandbox Code Playgroud)

现在,无论何时您编写somevarWeb应用程序代码,webpack都将在编译时将其替换为文件内容。我认为这可能有一些用途,但从未使用过。

在浏览器中使用FS模块

出于安全原因,您不能fs在浏览器中使用该模块:您将无法设置列出文件系统项或写入磁盘的Vue组件。这不是webpack,节点也不是Vue问题,这是由于浏览器的安全性限制所致。fsnode.js的本机模块与OS低级API通讯,浏览器无法访问它们。

如果javascript能够修改或读取文件系统,则会产生很多灾难性的非常糟糕的安全漏洞。

FileSystem API

现在,有了这个相当新的浏览器API,即FileSystem API

它不允许访问用户文件系统,但是它以某种方式模拟了Web应用程序可以在其中存储文件的沙盒文件夹。根据您的用例,它可能对您很有用,但没有最大的浏览器支持。

 Webpack配置

任何地方都没有webpack配置文件。

实际上,在vue-cli 3应用程序中的所有webpack内容都应通过以下vue.config.js文件完成:https : //cli.vuejs.org/guide/webpack.html 。

在这里您可以执行任意的node.js代码(实际上,您可以如前所述fs从那里调用,因为它是在您的计算机上运行的代码,而不是在浏览器中运行的代码)。