node.js - 无法使用 Vue CLI 3 要求 'fs'

标签 node.js vue.js

我正在使用 Vue CLI 3 为 Windows 10 开发一个调度软件。

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

Vue CLI 3 非常不同,我无法使用 stackoverflow 上介绍的所有方法。

请帮帮我

最佳答案

在引导应用程序时使用 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,
        })
      ]
    }
  },
}

现在,每当您在 Web 应用程序代码中编写 somevar 时,webpack 都会在编译时将其替换为文件的内容。我认为这可能有一些用处,但从来没有用过。

在浏览器中使用FS模块

出于安全原因,您不能在浏览器中使用 fs 模块:您将无法设置列出文件系统项或写入的 Vue 组件磁盘。这不是 webpack、node 或 Vue 的问题,这是由于浏览器的安全限制。 node.js 的原生 fs 模块与操作系统底层 API 对话,浏览器无法访问它们。

如果 javascript 能够修改或读取文件系统,就会出现许多破坏性的、非常糟糕的安全问题。

文件系统API

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

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

Webpack 配置

There is no webpack config file anywhere.

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

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

关于node.js - 无法使用 Vue CLI 3 要求 'fs',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52420663/

相关文章:

javascript - 为什么我在一条路线上没有得到 req.body ? Node JS

javascript - 如何在Vuejs中插入Echarts?

javascript - Vuejs 组件等待 facebook sdk 加载

node.js - 使用 "create-react-app my-app"创建 React 应用程序时出错

javascript - 如何将函数/回调传递给 Node.js 中的子进程?

node.js - mongoose - 尝试保存文档数组,仅保存空数组

javascript - 在 vueJS 中导入 javascript 类

vue.js - 如何扩展 Vuetify 组件并保留引用?

image - Webpack 为使用文件加载器包含的图像生成错误的 url

node.js - 使用 gitflow、Jenkins 和 Node 时如何自动更改 package.json 版本?