Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.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
Javascript 带有html网页包插件的网页包,全局安装时出错_Javascript_Node.js_Reactjs_Webpack_Html Webpack Plugin - Fatal编程技术网

Javascript 带有html网页包插件的网页包,全局安装时出错

Javascript 带有html网页包插件的网页包,全局安装时出错,javascript,node.js,reactjs,webpack,html-webpack-plugin,Javascript,Node.js,Reactjs,Webpack,Html Webpack Plugin,我知道,当webpack和html webpack插件与npm-g一起安装时,其他地方也报告过这个问题: module.js:341 throw err; ^ Error: Cannot find module 'html-webpack-plugin' at Function.Module._resolveFilename (module.js:339:15) 人们找到的答案是。但这对我不起作用。我需要让它在我们的共享构建系统中工作,而不仅仅是在我的开发环境

我知道,当webpack和html webpack插件与npm-g一起安装时,其他地方也报告过这个问题:

    module.js:341
    throw err;
    ^

Error: Cannot find module 'html-webpack-plugin'
    at Function.Module._resolveFilename (module.js:339:15)
人们找到的答案是。但这对我不起作用。我需要让它在我们的共享构建系统中工作,而不仅仅是在我的开发环境中。这意味着在全球范围内安装它,以便所有项目都可以通过Jenkins运行的ant/nant构建脚本访问它

我的项目很简单。两个html页面,包含由包含脚本标记的html中的reactJS脚本生成的内容。这应该很容易,而且开始是一种痛苦。考虑转储webpack并寻找另一个简单的javascript包管理器

我们是否可以使用环境变量告诉webpack在全局节点“node_modules”目录中查找“required”插件/包


建议?

您不必为Jenkins全局安装webpack。 在脚本下向package.json添加一个运行本地Web包的命令,如下所示:

  "scripts": {
    "start": "webpack-dev-server --inline --hot",
    "build": "webpack -p"
  },
现在Jenkins可以运行您的构建脚本,而无需安装全局网页包:

npm run build
通过这种方式,您可以使用不同版本的webpack维护多个项目,并且每个项目都可以有自己的本地依赖项

脚本道具是projects package.json的一部分。json包含项目的所有依赖项和开发依赖项(构建、测试等)。使用在生成计算机上运行NPM install的package.json,您可以在本地(项目目录的一部分)安装所有依赖项。使用webpack构建的angular项目的package.json示例:

{
  "name": "whatever",
  "version": "1.2.0",
  "description": "whatever",
  "scripts": {
    "start": "webpack-dev-server --inline --hot", // runs the dev server
    "build": "webpack -p" // builds the release
  },
  "dependencies": { // the dependencies that are part of the actual release
    "angular": "1.5.0",
    "angular-animate": "1.5.0",
    "angular-messages": "1.5.0",
    "angular-ui-router": "0.2.15"
  },
  "devDependencies": { // build dependencies 
    "babel-core": "6.5.2",
    "babel-eslint": "6.0.0-beta.1",
    "babel-loader": "6.2.3",
    "babel-preset-es2015": "6.5.0",
    "babel-preset-stage-0": "6.5.0",
    "css-loader": "0.23.1",
    "file-loader": "0.8.5",
    "html-loader": "0.4.3",
    "html-webpack-plugin": "2.14.0",
    "less-loader": "2.2.2",
    "style-loader": "0.13.0",
    "url-loader": "0.5.7",
    "webpack": "1.12.14",
    "webpack-dev-server": "1.14.1"
  },
  "license": "MIT"
}
无论何时更新git master,Jenkins都会拉取最新提交,清理当前构建目录,包括所有依赖项,并在项目文件夹中运行以下命令:
npm install
在本地安装所有依赖项,作为项目文件夹的一部分
npm运行build
以生成发行版

Jenkins不知道webpack或任何其他构建工具或依赖项。Jenkins上唯一全局安装的是nodejs和npm

下面是运行命令的简单bash脚本:

rm -rf node_modules || true // remove node_modules (all deps)
npm install // install all deps
npm run build // run the build script

您不能同时在本地和全局安装吗?我可以在我的开发环境中在本地安装,但不能在构建服务器上安装。构建服务器根据需要创建/销毁构建环境,在启动构建之前在其中放置一个特殊脚本以在本地安装html webpack插件似乎是一个垃圾解决方案,我希望避免这种情况。谢谢,但我们不需要每个项目都有不同版本的webpack。我仍然不明白为什么我们需要在正在建设的项目中本地安装所有这些。我是npm新手,我必须对上面的脚本进行排序。我将添加更多详细信息。是什么将html网页包插件本地安装到项目中的?npm作为html网页包插件安装是devDependenciesThanks的一部分,它今天在本地运行。一旦我们在构建服务器上安装了nodejs/npm,我们就应该准备好了。谢谢