2016-11-16 74 views
0

我已经在generator-react-webpack上构建了我的项目。现在我正在尝试将我的反应应用程序部署到Heroku。在构建依赖关系的过程中出现错误:运行时无法解析模块'babel'dist

npm run copy & webpack --env=dist 
remote:   
remote:  Hash: 82c8f499a3f6822a3522 
remote:  Version: webpack 1.13.3 
remote:  Time: 73ms 
remote:   
remote:  ERROR in Entry module not found: Error: Cannot resolve module 'babel' in /tmp/build_a9e8f64bdab19b2486d922d4ba0f3d83 

加载程序似乎有点奇怪。我试图在依赖中包含'babel',并且试图用'babel-core'取代它,但它不起作用。

我对这个问题感到非常沮丧,如果有人能帮助我,我会非常感激。谢谢!


的package.json

{ 
    "name": "templateApp", 
    "private": true, 
    "version": "0.0.1", 
    "description": "Template application for future builds", 
    "main": "", 
    "engines": { 
    "node": "6.2.2" 
    }, 
    "scripts": { 
    "clean": "rimraf dist/*", 
    "copy": "copyfiles -f ./src/index.html ./src/favicon.ico ./dist", 
    "dist": "npm run copy & webpack --env=dist", 
    "lint": "eslint ./src", 
    "posttest": "npm run lint", 
    "release:major": "npm version major && npm publish && git push --follow-tags", 
    "release:minor": "npm version minor && npm publish && git push --follow-tags", 
    "release:patch": "npm version patch && npm publish && git push --follow-tags", 
    "serve": "node server.js --env=dev", 
    "serve:dist": "node server.js --env=dist", 
    "dev": "node server.js --env=dev", 
    "start": "node server.js --env=dev", 
    "test": "karma start", 
    "test:watch": "karma start --autoWatch=true --singleRun=false", 
    "postinstall": "npm run dist && npm run start" 
    }, 
    "repository": "", 
    "keywords": [], 
    "author": "Alfred Ödling", 
    "devDependencies": { 
    "babel-core": "^6.0.0", 
    "babel-eslint": "^6.0.0", 
    "babel-loader": "^6.0.0", 
    "babel-polyfill": "^6.3.14", 
    "babel-preset-es2015": "^6.0.15", 
    "babel-preset-react": "^6.0.15", 
    "babel-preset-stage-0": "^6.5.0", 
    "bower-webpack-plugin": "^0.1.9", 
    "chai": "^3.2.0", 
    "copyfiles": "^0.2.1", 
    "css-loader": "^0.23.0", 
    "eslint": "^2.2.0", 
    "eslint-loader": "^1.0.0", 
    "eslint-plugin-react": "^5.0.0", 
    "file-loader": "^0.8.4", 
    "glob": "^7.0.0", 
    "isparta-instrumenter-loader": "^1.0.0", 
    "karma": "^0.13.9", 
    "karma-chai": "^0.1.0", 
    "karma-coverage": "^1.0.0", 
    "karma-mocha": "^1.0.0", 
    "karma-mocha-reporter": "^2.0.0", 
    "karma-phantomjs-launcher": "^1.0.0", 
    "karma-sourcemap-loader": "^0.3.5", 
    "karma-webpack": "^1.7.0", 
    "lost": "^7.0.3", 
    "minimist": "^1.2.0", 
    "mocha": "^2.2.5", 
    "node-sass": "^3.4.2", 
    "null-loader": "^0.1.1", 
    "open": "0.0.5", 
    "phantomjs-prebuilt": "^2.0.0", 
    "postcss": "^5.0.11", 
    "postcss-loader": "^0.8.0", 
    "react-addons-test-utils": "^15.0.0", 
    "react-hot-loader": "^1.2.9", 
    "rimraf": "^2.4.3", 
    "rucksack-css": "^0.8.6", 
    "sass-loader": "^3.1.2", 
    "style-loader": "^0.13.0", 
    "url-loader": "^0.5.6", 
    "webpack": "^1.12.0", 
    "webpack-dev-server": "^1.12.0" 
    }, 
    "dependencies": { 
    "autoprefixer": "^6.3.7", 
    "axios": "^0.13.1", 
    "classnames": "^2.2.5", 
    "clipboard": "^1.5.12", 
    "core-js": "^2.0.0", 
    "firebase": "^3.4.1", 
    "fixed-data-table": "^0.6.3", 
    "flat": "^2.0.1", 
    "history": "^3.0.0", 
    "lodash": "^4.15.0", 
    "lost": "^7.0.3", 
    "normalize.css": "^4.0.0", 
    "postcss": "^5.1.1", 
    "postcss-cli": "^2.5.2", 
    "postcss-cssnext": "^2.8.0", 
    "postcss-import": "^8.1.2", 
    "postcss-loader": "^0.8.2", 
    "react": "^15.0.0", 
    "react-addons-css-transition-group": "^15.3.0", 
    "react-cookie": "^0.4.8", 
    "react-datagrid": "^2.1.1", 
    "react-dom": "^15.3.1", 
    "react-redux": "^4.4.5", 
    "react-router": "^2.6.1", 
    "react-tooltip": "^3.2.1", 
    "redux": "^3.5.2", 
    "redux-thunk": "^2.1.0", 
    "rucksack-css": "^0.8.6", 
    "seamless-immutable": "^6.1.1" 
    } 
} 

dist.js

'use strict'; 

let path = require('path'); 
let webpack = require('webpack'); 

let baseConfig = require('./base'); 
let defaultSettings = require('./defaults'); 

// Add needed plugins here 
let BowerWebpackPlugin = require('bower-webpack-plugin'); 

let config = Object.assign({}, baseConfig, { 
    entry: path.join(__dirname, '../src/index'), 
    cache: false, 
    devtool: 'sourcemap', 
    plugins: [ 
    new webpack.optimize.DedupePlugin(), 
    new webpack.DefinePlugin({ 
     'process.env.NODE_ENV': '"production"' 
    }), 
    new BowerWebpackPlugin({ 
     searchResolveModulesDirectories: false 
    }), 
    new webpack.optimize.UglifyJsPlugin(), 
    new webpack.optimize.OccurenceOrderPlugin(), 
    new webpack.optimize.AggressiveMergingPlugin(), 
    new webpack.NoErrorsPlugin() 
    ], 
    module: defaultSettings.getDefaultModules() 
}); 

// Add needed loaders to the defaults here 
config.module.loaders.push({ 
    test: /\.(js|jsx)$/, 
    loader: 'babel', 
    include: [].concat(
    config.additionalPaths, 
    [ path.join(__dirname, '/../src') ] 
) 
}); 

module.exports = config; 
+1

你有.babelrc文件 –

+0

是包含:!?! { “预设”: “ES2015”, “0级”, “反应” ] } – AlfredO

回答

1

可以从您dist.js文件改变你进入此:

entry: [ 
    'babel-polyfill', 
    path.join(__dirname, '../src/index') 
], 
+0

我做到了这一点,并且还将babel-polyfill添加到依赖项中,因为它并没有首先找到它。 运行“npm run copy&webpack --env = dist”时运行=>“copyfiles -f ./src/index.html ./src/favicon.ico ./dist” 我得到错误“sh: 1:copyfiles:not found“后面跟着更多的错误。它就像构建生产时不能访问package.json中的依赖关系一样。 – AlfredO

3

https://github.com/mxstbr/react-boilerplate/issues/914

“确保你设置NPM_CONFIG_PRODUCTION =在Heroku假。没有这个devDependencies将不会被安装。这个样板需要建立。

如果您有Heroku的命令行安装,你可以 Heroku的配置:设置NPM_CONFIG_PRODUCTION =假--app您-APP-名

否则转到设置选项卡上的应用程序,并添加配置变量”

这个固定