Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Webpack 网页第4页-can';t在生产模式下查找/package.json_Webpack_Google Cloud Firestore_Webpack 4 - Fatal编程技术网

Webpack 网页第4页-can';t在生产模式下查找/package.json

Webpack 网页第4页-can';t在生产模式下查找/package.json,webpack,google-cloud-firestore,webpack-4,Webpack,Google Cloud Firestore,Webpack 4,我正在为一个简单的web express应用程序运行webpack4 当我在开发环境中运行服务器(通过nodemon)时,它运行得非常完美,但当我进入生产环境时,我会遇到这个奇怪的错误(由firestore生产线生成) 错误:package.json不存在于/package.json 我不明白为什么它在根(/)目录而不是dist目录中查找package.json 这是我的webpack.config.js文件: // webpack.config.js const path = require

我正在为一个简单的web express应用程序运行webpack4 当我在开发环境中运行服务器(通过nodemon)时,它运行得非常完美,但当我进入生产环境时,我会遇到这个奇怪的错误(由firestore生产线生成)

错误:package.json不存在于/package.json

我不明白为什么它在根(/)目录而不是dist目录中查找package.json

这是我的webpack.config.js文件:

// webpack.config.js

const path = require('path')
const webpack = require('webpack') // to access built-in plugins
// const nodeExternals = require('webpack-node-externals')
const CopyWebpackPlugin = require('copy-webpack-plugin')

const config = {
  mode: 'production',
  target: 'node',
  entry: './lib/index.js',
  // externals: [nodeExternals()], // in order to ignore all modules in node_modules folder
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'app.js',
  },
  module: {
    rules: [
      {
        test: /\.js$/,
        exclude: /(node_modules)/,
        use: {
          loader: "babel-loader"
        }
      },
      {
        enforce: 'pre',
        test: /\.js$/,
        exclude: /(node_modules)/,
        loader: 'eslint-loader'
      },
      {
        test: /\.txt$/,
        exclude: /(node_modules)/,
        use: 'raw-loader'
      }
    ]
  },
  plugins: [
    new CopyWebpackPlugin([{ from: './lib/assets/lastest.txt' }, { from: './package.json' }]),
    new webpack.DefinePlugin({
      'process.env.NODE_ENV': '"production"'
    }),
  ]
}

module.exports = config
你知道我遗漏了什么吗?
我在文档中看到了对解析器的引用,但默认情况下,它在查找package.json,所以…

问题来自gRPC(firebase/firestore的依赖项)的问题,它在Windows上很难从节点pre-gyp(它的依赖项)找到绑定。因此,不要像这样导入Firebase:

import firebase from 'firebase/app';
<script src="https://www.gstatic.com/firebasejs/5.10.0/firebase-app.js" />
<script src="https://www.gstatic.com/firebasejs/5.10.0/firebase-firestore.js" />
您需要通过创建应用程序外壳来导入firebase,并使用以下脚本标记:

import firebase from 'firebase/app';
<script src="https://www.gstatic.com/firebasejs/5.10.0/firebase-app.js" />
<script src="https://www.gstatic.com/firebasejs/5.10.0/firebase-firestore.js" />


使用此解决方法,您可以将这些脚本缓存到用户的浏览器中。但是,这只会导致用户首次进入网站时加载时间增加。除此之外,网站的运行速度也应该一样快(甚至更快)。您甚至不需要费心创建一个外部API(除非您希望这样做)。要访问您的数据库,您可以执行一个简单的
firebase.firestore()…get()
,但在尝试类似操作之前,请确保您的用户已在其缓存中安装了firebase,否则您将收到一个错误,指出
firebase.firestore()
不是函数。

有相同的问题,您解决了吗?