我是.net开发者我是nodejs环境中的新手 我有一个nodeJS项目。它工作得非常好,我加入了一些功能,然后我完成了它。然后我删除了那个项目。现在我必须安装该项目以添加新的功能
所以我把项目代码放在一个文件夹中然后我用
npm install
然后我使用npm build和npm start build命令,但它在npm start build命令后给出了该错误
has already been exported. Exported identifiers must be unique.
我搜索那个错误。我找到了解决方案。我认为错误是关于babel / babylon
https://github.com/babel/babylon/releases/tag/v6.11.2
但我不明白那个解决方案。我应该下载 {bab}文件到节点模块下的https://github.com/babel/babylon/releases/tag/v6.11.2?但是在我的node modules文件夹中没有babylon 这是我的package.json 如何将该项目安装到任何文件夹?只需复制文件和npm install就足够了吗?
{
"name": "react-seed",
"version": "0.0.13",
"description": "Seed project for React apps using ES6 & webpack.",
"repository": "https://github.com/badsyntax/react-seed",
"config": {
"buildDir": "./build",
"buildDirTests": "./build_tests",
"devHost": "0.0.0.0",
"devPort": 8000,
"remoteHost": "http://yazilimsozluk.com"
},
"scripts": {
"build": "set NODE_ENV=production&& npm run webpack",
"clean": "rimraf $npm_package_config_buildDir && mkdir $npm_package_config_buildDir",
"env": "env",
"lint": "eslint --ext .js --ext .jsx ./app ./webpack && echo No linting errors.",
"prebuild": "npm run clean",
"pretest": "npm install && npm run lint",
"pretest-travis": "npm install && npm run lint",
"start": "set NODE_ENV=development && node dev-server ./webpack/config",
"test": "NODE_ENV=test karma start --single-run",
"test-dev": "NODE_ENV=test karma start",
"test-travis": "NODE_ENV=test karma start --single-run",
"webpack": "webpack --colors --progress --config ./webpack/config"
},
"dependencies": {
"classnames": "^2.1.1",
"hammerjs": "^2.0.4",
"immutable": "^3.7.6",
"intl": "^1.0.0",
"intl-locales-supported": "^1.0.0",
"jquery": "^2.1.4",
"lodash": "^4.9.0",
"materialize-css": "^0.97.5",
"ms-signalr-client": "^2.2.2",
"normalize.css": "^4.0.0",
"react": "^0.14.8",
"react-dnd": "^2.1.4",
"react-dnd-html5-backend": "^2.1.2",
"react-dnd-html5-touch-backend": "^1.5.0",
"react-dnd-touch-backend": "^0.2.7",
"react-dom": "^0.14.8",
"react-flexgrid": "^0.7.0",
"react-intl": "^2.0.0-rc-1",
"react-redux": "^4.4.1",
"redux": "^3.3.1",
"redux-thunk": "^2.0.1",
"superagent": "^1.3.0"
},
"devDependencies": {
"autoprefixer": "^6.3.4",
"babel-core": "^6.7.4",
"babel-eslint": "^6.0.0",
"babel-loader": "^6.2.4",
"babel-plugin-rewire": "^1.0.0-rc-1",
"babel-plugin-transform-decorators": "^6.6.5",
"babel-plugin-transform-decorators-legacy": "^1.3.4",
"babel-polyfill": "^6.7.4",
"babel-preset-es2015": "^6.6.0",
"babel-preset-react": "^6.5.0",
"babel-preset-stage-0": "^6.5.0",
"babel-runtime": "^6.6.1",
"chai": "^2.3.0",
"compass-mixins": "^0.12.7",
"css-loader": "^0.23.1",
"eslint": "^2.5.1",
"eslint-plugin-react": "^4.2.3",
"expose-loader": "^0.7.0",
"extract-text-webpack-plugin": "^1.0.1",
"file-loader": "^0.8.1",
"glob": "^7.0.3",
"html-loader": "^0.4.3",
"inline-environment-variables-webpack-plugin": "^1.1.0",
"json-loader": "^0.5.1",
"karma": "^0.12.31",
"karma-chrome-launcher": "^0.1.12",
"karma-cli": "0.0.4",
"karma-mocha": "^0.1.10",
"karma-mocha-reporter": "^1.0.2",
"karma-phantomjs-launcher": "^0.1.4",
"karma-sinon": "^1.0.4",
"karma-source-map-support": "^1.0.0",
"karma-sourcemap-loader": "^0.3.4",
"karma-webpack": "^1.5.1",
"mocha": "^2.2.4",
"mocha-loader": "^0.7.1",
"node-libs-browser": "^1.0.0",
"node-sass": "^3.4.2",
"postcss-loader": "^0.8.2",
"react-hot-loader": "^1.2.7",
"rimraf": "^2.3.3",
"sass-loader": "^3.2.0",
"sinon": "^1.14.1",
"source-map-support": "^0.4.0",
"style-loader": "^0.13.1",
"template-html-loader": "0.0.3",
"webpack": "^1.12.14",
"webpack-dev-server": "^1.8.2"
},
"engines": {
"node": ">=0.10.0"
},
"eslintConfig": {
"env": {
"browser": true,
"node": true,
"es6": true
},
"ecmaFeatures": {
"modules": true,
"jsx": true
},
"globals": {
"describe": true,
"it": true,
"xit": true,
"xdescribe": true,
"beforeEach": true,
"sinon": true
},
"plugins": [
"react"
],
"parser": "babel-eslint",
"rules": {
"strict": true,
"indent": [
2,
2
],
"quotes": [
2,
"single"
],
"new-cap": 0,
"no-unused-expressions": 0,
"no-underscore-dangle": 0,
"react/display-name": 0,
"react/jsx-quotes": 1,
"react/jsx-no-undef": 1,
"react/jsx-sort-props": 1,
"react/jsx-uses-react": 1,
"react/jsx-uses-vars": 1,
"react/no-did-mount-set-state": 1,
"react/no-did-update-set-state": 1,
"react/no-multi-comp": 1,
"react/no-unknown-property": 1,
"react/prop-types": 1,
"react/react-in-jsx-scope": 1,
"react/self-closing-comp": 1,
"react/wrap-multilines": 1
}
}
}
被修改
mockPlayer函数中的mockhelper.js中发生错误 这是文件代码
import _ from 'lodash';
import * as stoneHelpers from 'utils/stoneTestHelpers';
import { StoneColor,
SequenceType } from 'constants/AppConstants';
export function mockStone(color = StoneColor.RED, number = 1) {
return {
number: number,
color: color
};
}
export function mockOkeyStoneWithHelper(okeyStone, helper) {
return _.extend({}, okeyStone, {
isOkey: true,
okeyHelper: helper
});
}
export function mockStoneWithId(color = StoneColor.RED, number= 1, id) {
return {
id: id,
color: color,
number: number
};
}
export function mockPlayer(id, name) {
return {
id: id,
name: name
};
}
export function mockTable() {
return {
players: [
mockPlayer(1, 'mockPlayer1'),
mockPlayer(2, 'mockPlayer2'),
mockPlayer(3, 'mockPlayer3'),
mockPlayer(4, 'mockPlayer4')
],
scoreboard: []
};
}
export function mockOpenStoneGroups(owner) {
return {
groups: [stoneHelpers.buildStoneGroupSequenceWithStones(
SequenceType.RAINBOW,
stoneHelpers.buildStoneRainbow(5, 0),
owner),
stoneHelpers.buildStoneGroupSequenceWithStones(
SequenceType.SAME_COLOR,
stoneHelpers.buildStoneSameColor(6, StoneColor.GREEN, 300, 4),
owner)
]
};
}
export function mockOpenStoneGroupsWithGroups(groups) {
return {
groups: groups
};
}
export function mockOpenStoneGroupsForPairs(owner, count) {
const groups = [];
while (count-- > 0) {
groups.push(stoneHelpers.buildStoneGroupPairsWithStones(
stoneHelpers.buildStonePair(count, StoneColor.RED, count * 100),
owner
));
}
return mockOpenStoneGroupsWithGroups(groups);
}
export function mockStartInfo(currentTurn = 0) {
return {
stones: _.flatten([
stoneHelpers.buildStoneSameColor(1, StoneColor.RED, 0, 3),
stoneHelpers.buildStoneRainbow(13, 300),
stoneHelpers.buildFreeStoneGroup(400)
]),
discardStones: [
[stoneHelpers.buildStone(1, StoneColor.RED)],
[stoneHelpers.buildStone(2, StoneColor.BLACK)],
[stoneHelpers.buildStone(3, StoneColor.GREEN)],
[stoneHelpers.buildStone(4, StoneColor.BLUE)]
],
gosterge: stoneHelpers.buildStone(10, StoneColor.BLACK),
currentTurn: currentTurn
};
}
export function mockPlayer(id, name, optional) {
return _.extend({
id: id,
name: name
}, {}, optional);
}
export function mockPlayerFull(id, name) {
return mockPlayer(id, name, {
state: {
turnPoints: 10,
openPoints: 100,
openedHands: 0,
hasOpenedPairs: false
},
timeLeft: 10
});
}
export function mockTable(p1 = mockPlayerFull(1, 'mockPlayer1'),
p2 = mockPlayerFull(2, 'mockPlayer2'),
p3 = mockPlayerFull(3, 'mockPlayer3'),
p4 = mockPlayerFull(4, 'mockPlayer4')) {
var result = {
players: [
p1,
p2,
p3,
p4
]
};
return result;
}
export function mockMatchStats(ranking, player,
score, xp, hands,
punish, chips) {
return {
player: player,
stats: {
ranking: ranking,
score: score,
gainedXP: xp,
openedHands: hands,
punishment: punish,
gainedChips: chips
}
};
}
export function mockMatchResult(p1 = mockPlayerFull(1, 'mockPlayer'),
p2 = mockPlayerFull(2, 'mockPlayer2'),
p3 = mockPlayerFull(3, 'mockPlayer3'),
p4 = mockPlayerFull(4, 'mockPlayer4')) {
return {
rankings: [
mockMatchStats(1, p1, 100, 50, 2, 1, 400),
mockMatchStats(2, p2, 50, 25, 1, 1, 200),
mockMatchStats(3, p3, 25, 10, 1, 0, -100),
mockMatchStats(4, p4, 10, 10, 1, 3, -200)
]
};
}
export function mockInitialStateGamePlay() {
return {
discardStones: [[], [], [], []],
sequence: [],
pairs: [],
selectedStone: null
};
}
答案 0 :(得分:2)
您发布的错误
如果你不知道什么是错的,那么已经导出。导出的标识符必须是唯一的。
可能不够明确。打破它
导出的标识符必须是唯一的。
表示文件只能导出一个具有特定名称的东西。在您的特定代码中,您同时拥有
export function mockTable(
p1 = mockPlayerFull(1, 'mockPlayer1'),
p2 = mockPlayerFull(2, 'mockPlayer2'),
p3 = mockPlayerFull(3, 'mockPlayer3'),
p4 = mockPlayerFull(4, 'mockPlayer4')
) {
// ...
}
和
export function mockTable() {
return {
players: [
mockPlayer(1, 'mockPlayer1'),
mockPlayer(2, 'mockPlayer2'),
mockPlayer(3, 'mockPlayer3'),
mockPlayer(4, 'mockPlayer4')
],
scoreboard: []
};
}
没有意义。您不能在同一范围内使用相同名称的两个函数。