2017-05-27 83 views
3

我试图部署我的反应应用程序,它是100%的前端,但在webpack服务器上运行。我需要把它作为一个灵活的环境部署到谷歌应用程序引擎,但我使gcloud app deploy无法在Google应用引擎上部署reactjs webpack应用程序

sh: 1: webpack: not found 
 
npm ERR! file sh 
 
npm ERR! code ELIFECYCLE 
 
npm ERR! errno ENOENT 
 
npm ERR! syscall spawn 
 
npm ERR! [email protected] bundle: `webpack --config webpack.config.js` 
 
npm ERR! spawn ENOENT 
 
npm ERR! 
 
npm ERR! Failed at the [email protected] bundle script. 
 
npm ERR! This is probably not a problem with npm. There is likely additional logging output above. 
 

 
npm ERR! A complete log of this run can be found in: 
 
npm ERR!  /root/.npm/_logs/2017-05-27T15_14_54_097Z-debug.log 
 

 
npm ERR! Linux 3.16.0-4-amd64 
 
npm ERR! argv "/nodejs/bin/node" "/nodejs/bin/npm" "start" 
 
npm ERR! node v6.10.3 
 
npm ERR! npm v3.10.10 
 
npm ERR! code ELIFECYCLE 
 
npm ERR! [email protected] prestart: `npm run bundle` 
 
npm ERR! Exit status 1 
 
npm ERR! 
 
npm ERR! Failed at the [email protected] prestart script 'npm run bundle'. 
 
npm ERR! Make sure you have the latest version of node.js and npm installed. 
 
npm ERR! If you do, this is most likely a problem with the react-hot-boilerplate package, 
 
npm ERR! not with npm itself. 
 
npm ERR! Tell the author that this fails on your system: 
 
npm ERR!  npm run bundle 
 
npm ERR! You can get information on how to open an issue for this project with: 
 
npm ERR!  npm bugs react-hot-boilerplate 
 
npm ERR! Or if that isn't available, you can get their info via: 
 
npm ERR!  npm owner ls react-hot-boilerplate 
 
npm ERR! There is likely additional logging output above. 
 

 
npm ERR! Please include the following file with any support request: 
 
npm ERR!  /app/npm-debug.log

我已经按照this tutorial和已安装的所有依赖后得到这个错误。 不幸的是,我无法得到它的作品。

这是我目前的状况

server.js

var webpack = require('webpack'); 
 
var WebpackDevServer = require('webpack-dev-server'); 
 
var config = require('./webpack.config'); 
 

 
new WebpackDevServer(webpack(config), { 
 
    publicPath: config.output.publicPath, 
 
    hot: true, 
 
    historyApiFallback: true 
 
}).listen(3000, 'localhost', function (err, result) { 
 
    if (err) { 
 
    return console.log(err); 
 
    } 
 

 
    console.log('Listening at http://localhost:3000/'); 
 
});

webpack.config.js

'use strict'; 
 

 
var path = require('path'); 
 
var webpack = require('webpack'); 
 
var env = process.env.NODE_ENV 
 

 
module.exports = { 
 
    devtool: 'eval', 
 
    entry: [ 
 
    'whatwg-fetch', 
 
    'webpack-dev-server/client?http://localhost:3000', 
 
    'webpack/hot/dev-server', 
 
    'babel-polyfill', 
 
    './app/index' 
 
    ], 
 
    output: { 
 
    path: path.join(__dirname, 'dist'), 
 
    filename: 'bundle.js', 
 
    library: 'Redux', 
 
    libraryTarget: 'umd', 
 
    publicPath: '/static/' 
 
    }, 
 
    plugins: [ 
 
    new webpack.optimize.OccurrenceOrderPlugin(), 
 
    new webpack.HotModuleReplacementPlugin() 
 

 
    ], 
 
    module: { 
 
    loaders: [ 
 
     { test: /\.js$/, 
 
     loaders: ['babel-loader'], exclude: /node_modules/, 
 
     include: path.join(__dirname, 'app') 
 
     }, 
 

 
     { 
 
      test: /\.json$/, 
 
      loader: 'json' 
 
     }, 
 

 
    {test: /\.scss$/, loader: "style-loader!raw-loader!sass-loader?includePaths[]=" + path.resolve(__dirname, "./node_modules/compass-mixins/lib") + "&includePaths[]=" + path.resolve(__dirname, "./mixins/app_mixins")}, 
 
    /* { test: /\.scss$/, loaders: ['style', 'css', 'sass?includePaths[]=' + path.resolve(__dirname, './node_modules/compass-mixins/lib','raw']}, */ 
 
    { test: /\.css$/, loader: "style-loader!css-loader" }, 
 
    //{ test: /\.json$/, loader: 'json-loader' }, 
 
    { test: /\.(jpe?g|png|gif|svg)$/i,loader:'file'}, 
 
    {test: /\.(woff|woff2|ttf|eot)$/, loader: 'file'}, 
 
    { test: /\.(png|woff|woff2|eot|ttf|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/,loader: 'url' } 
 

 

 

 
    ] 
 
    }, 
 
    node: { 
 
    fs: 'empty', 
 
    net: 'empty', 
 
    tls: 'empty' 
 
    }, 
 

 
devtool: 'source-map' 
 
};

package.json

"scripts": { 
 
    "start": "node server.js", 
 
    "bundle": "webpack --config webpack.config.js", 
 
    "prestart": "npm run bundle", 
 
    "lint": "eslint src" 
 
    },

我在做什么错。

感谢您的帮助

回答

0

能告诉你在package.json文件的依赖呢?

我有一个类似的问题运行gcloud应用程序部署

Error: Cannot find module 'webpack-dev-server' 
at Function.Module._resolveFilename (module.js:469:15) 

我解决了问题,从devDependencies给定的依赖关系(wepack-DEV-服务器)移动到dependencies中的package.json。

如果别人有同样的问题,我建议看看你的package.json中的dependenciesdependencies需要运行,devDependencies仅用于开发,例如:单元测试,Coffeescript to Javascript转换,缩小,

1

您需要更改脚本。在App Engine中全局安装Webpack不是最好的方法,直接从node_modules使用它。

首先,要确保的WebPack是在生产的依赖关系:

npm install --save webpack 

编辑您的package.json脚本:

"scripts": { 
    "start": "node server.js", 
    "bundle": "./node_modules/.bin/webpack --config webpack.config.js", 
    "prestart": "npm run bundle" 
}, 

现在,在一个干净的安装的纯npm install就足够捆绑您的应用程序。

相关问题