Webpack 不包括 ProvidePlugins

2024-05-03

我正在开发一个小型试用 Web 应用程序,它使用 vue webpack 模板(https://github.com/vuejs-templates/webpack https://github.com/vuejs-templates/webpack)。我对 webpack 还很陌生,所以我假设我可以添加到插件中new webpack.ProvidePlugin它将在全球范围内可用,但是当我做一个npm run dev我收到以下错误:

/var/www/public/leadsStatsDashboard/liveleadstats/src/components/Hello.vue
  18:17  error  'd3' is not defined  no-undef

在我看来,它找不到 d3 参考。我不确定是否有一些我跳过的配置或什么,但任何帮助将不胜感激。这是我的文件的来源

Webpack.dev.conf.js:

var path = require('path')
var config = require('../config')
var utils = require('./utils')
var webpack = require('webpack')
var projectRoot = path.resolve(__dirname, '../')

module.exports = {
  plugins: [
    new webpack.ProvidePlugin({
      d3: 'd3',
      crossfilter: 'crossfilter',
      dc: 'dc'
    })
  ],
  entry: {
    app: './src/main.js'
  },
  output: {
    path: config.build.assetsRoot,
    publicPath: config.build.assetsPublicPath,
    filename: '[name].js'
  },
  resolve: {
    extensions: ['', '.js', '.vue'],
    fallback: [path.join(__dirname, '../node_modules')],
    alias: {
      'src': path.resolve(__dirname, '../src'),
      'assets': path.resolve(__dirname, '../src/assets'),
      'components': path.resolve(__dirname, '../src/components'),
      'd3': path.resolve(__dirname, '../bower_components/d3/d3.min.js'),
      'crossfilter': path.resolve(__dirname, '../bower_components/crossfilter/crossfilter.min.js'),
      'dc': path.resolve(__dirname, '../bower_components/dcjs/dc.js')
    }
  },
  resolveLoader: {
    fallback: [path.join(__dirname, '../node_modules')]
  },
  module: {
    preLoaders: [
      {
        test: /\.vue$/,
        loader: 'eslint',
        include: projectRoot,
        exclude: /node_modules/
      },
      {
        test: /\.js$/,
        loader: 'eslint',
        include: projectRoot,
        exclude: /node_modules/
      }
    ],
    loaders: [
      {
        test: /\.vue$/,
        loader: 'vue'
      },
      {
        test: /\.js$/,
        loader: 'babel',
        include: projectRoot,
        exclude: /node_modules/
      },
      {
        test: /\.json$/,
        loader: 'json'
      },
      {
        test: /\.html$/,
        loader: 'vue-html'
      },
      {
        test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
        loader: 'url',
        query: {
          limit: 10000,
          name: utils.assetsPath('img/[name].[hash:7].[ext]')
        }
      },
      {
        test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
        loader: 'url',
        query: {
          limit: 10000,
          name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
        }
      }
    ]
  },
  eslint: {
    formatter: require('eslint-friendly-formatter')
  },
  vue: {
    loaders: utils.cssLoaders()
  }
}

你好.vue

<template>
<div id="pieChartContainer">
</div>
</template>

<script>
    export default {
        data () {
           return {
           // note: changing this line won't causes changes
           // with hot-reload because the reloaded component
           // preserves its current state and we are modifying
           // its initial state.
           msg: 'Hello World! This is a test'
        }
     },
     ready () {
     console.log(d3.version)
     }
  }
 </script>

 <!-- Add "scoped" attribute to limit CSS to this component only -->
 <style scoped>
   h1 {
    color: #42b983;
   }
 </style>

您的错误不是从 webpack 发出的,而是从eslint http://eslint.org/.
事实上,我认为 webpack 部分可以正常工作!

no-undef抱怨您正在使用全局d3无需在某处导入或定义它。

好消息是,这很容易解决。使用以下三种可能性中的任何一种:

  • 只需将以下块添加到您的.eslintrc.js:

    "globals": {
      "d3": true
    }
    
  • ...或者在需要的文件中使用 eslint 注释d3隐式(但这没有多大意义,因为您将其设置为全局可用,并且您需要在希望使用全局变量的每个文件中执行此操作):

    /* eslint-disable no-undef */
    
  • ...或者你可以放宽 eslint 规则.eslintrc.js config:

    'rules': {
        // all other rules...
        'no-undef': 0
    }
    

附加链接:

  • 直接链接到模板的 eslintrc 文件 https://github.com/vuejs-templates/webpack/blob/master/template/.eslintrc.js
  • 模板扩展的 eslint “标准”文件 https://github.com/feross/eslint-config-standard/blob/master/eslintrc.json
  • 进一步阅读 eslint 的内容no-undef rule http://eslint.org/docs/rules/no-undef
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Webpack 不包括 ProvidePlugins 的相关文章

  • 如何使 fs.readFile 异步等待?

    我这里有这个 NodeJS 代码 它读取文件夹并处理文件 该代码有效 但它仍然是先打印所有文件名 然后只读取文件 如何获取一个文件 然后先读取该文件的内容 而不是先获取所有文件 async function readingDirectory
  • 使用mockery和sinon模拟类方法

    我正在学习使用带有 sinon 的节点模块模拟进行单元测试 仅使用模拟和普通类 我就可以成功注入模拟 不过 我想注入一个 sinon 存根而不是一个普通的类 但我在这方面遇到了很多麻烦 我试图嘲笑的班级 function LdapAuth
  • 如何获取从 Express (Node.js) 中的表单传递的数据

    我想获取使用表单从页面传递的数据 并在重定向的页面中使用该数据 我的客户端有这个表格
  • Node.js 上的 Connect 出现“无法 GET /”

    我正在尝试使用以下方式开始提供一些静态网页connect像这样 var connect require connect var nowjs require now var io require socket io var app conne
  • Nodejs + npm,在ntfs分区安装模块

    我在安装 npm 模块时遇到问题 NodeJS 安装在 Windows 主机上 Virtual Box 上运行的 Ubuntu 11 10 上 我的项目文件位于 NTFS 分区上 我必须与 Windows 共享它们 当我尝试安装某些 npm
  • Nuxt JS 插件是否可以只运行一次?

    我有几个 VueX 操作 仅在服务器上运行 并从nuxtServerInit 它们向外部服务发出 HTTP 请求 这会减慢 TTFB 的速度 我想实现一个缓存插件 可以从 Redis 存储和检索值 目的是避免在每个请求的操作中发出 HTTP
  • 使用 Webpack 代理创建 React 应用程序中的 WebSockets

    我使用版本 3 1 2 2019 年 9 月 19 日 中的 Create React App 创建了我的 React 应用程序 我试图为 Web Socket 请求配置代理 但似乎当我使用代理时 未建立连接 我用过THIS https g
  • 茉莉花节点没有输出

    我是 JavaScript Node js 和 jasmine 的新手 我正在尝试运行 Node Craftsman Book 一书中的测试 FilesizeWatcher 我创建了 package json 文件并运行 npm insta
  • nvd3.js - 无法更改折线图中线条的颜色

    我正在尝试更改 nvd3 折线图不同线条的颜色here http nvd3 org livecode index html codemirrorNav但我无法理解该怎么做 我想将示例中的 2 条线的颜色更改为绿色和青色 我试过 nv add
  • 从 Node.js 调用 execl、execle、execlp、execv、execvP 或 execvp 的方法

    POSIX 系统公开了一系列exec函数 允许人们将可能不同的东西加载到当前进程中 保留打开的文件描述符 进程标识符等 可以出于多种原因执行此操作 在我的情况下 这是引导 我想更改我自己的进程的命令行选项 然后在现有进程上重新加载它 这样就
  • 返回旧的(m,文件名);错误 [ERR_REQUIRE_ESM]:ES 模块的 require()

    我正在尝试与 unsplash api 进行集成 但我得到了 当我尝试通过 ts node 运行脚本时 如下所示 ts node unsplash ts 有错误 C Users USER AppData Roaming npm node m
  • Node.js 请求随机开始挂起,直到服务器重新启动后才会清除

    我在我们的网络应用程序上遇到了一个非常奇怪且看似随机的问题 我似乎无法成功调试 它可以正常运行 10 分钟到 6 小时 然后突然无法向服务器发出或从服务器发出远程请求 它们只是挂起 这包括常规的 http 和 Web 套接字请求 奇怪的是
  • Angular 和 Node JS 中的路由问题 [Angular]

    我有角度js的问题 我创建了 login html 和 home html 成功登录后我想将页面更改为 home html 我的路由不起作用 默认 url 是 localhost angular 我尝试路由 realpath 即 local
  • windows下用nodejs抓包

    node js v0 8 0 XP WIN7 不是 Cygwin 谷歌并找到node pcap https github com mranney node pcap https github com mranney node pcap 但它
  • Node.js 进行 rsa 加密的正确方法?

    我正在尝试创建一个 WS 来发出肥皂请求 在消息正文中有一个包含加密文本的字段 我有公钥来加密文本 但我获得的唯一结果是文本无法识别 我使用节点的加密模块来发出请求 并且文本已加密 但我不知道为什么没有正确加密 PS我用 openssl p
  • 类验证器 (Node.js) 在自定义验证中获取另一个属性值

    目前 我有一个非常简单的类验证器文件 其中包含 Nest js 中的 ValidationPipe 如下所示 import IsDateString IsEmail IsOptional IsString Length Max from c
  • Eclipse 中的 node.js - 大多数人使用哪个插件?

    我最感兴趣的是服务器端 Web 开发 尽管能够在 Chrome 中重新部署一些部分会很好 我目前正在跑步Eclipse Indigo在 Ubuntu 上主要开发 Java Scala 程序并使用 git 到目前为止我遇到过http code
  • 使用任何节点模块在内存中创建 ZIP 文件

    是否有任何节点模块可以在内存中创建 zip 我不想将 zip 文件保存在磁盘上 以便我们可以将这个创建的 zip 文件发送到其他服务器 从内存 做这个的最好方式是什么 这是我的例子 var file system require fs va
  • 对于单主机 Node.js 生产应用程序来说,什么是好的会话存储? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话
  • 将 Mocha 与 Babel 结合使用时出现意外的令牌导入

    我知道这在某种程度上是一个重复的问题 但到目前为止我发现的所有提示都没有帮助 这就是为什么我决定再次询问 我在 Mocha 中创建了一个简单的测试 当我尝试运行它时 我不断得到unexpected token import错误 我尝试了在这

随机推荐