首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Webpack使用html-webpack-plugin,在全球安装时出错

Webpack使用html-webpack-plugin,在全球安装时出错
EN

Stack Overflow用户
提问于 2016-03-29 17:39:34
回答 1查看 8.9K关注 0票数 2

我知道这个问题在其他地方也有报道,webpack和html-webpack-插件都是用npm -g安装的:

代码语言:javascript
复制
    module.js:341
    throw err;
    ^

Error: Cannot find module 'html-webpack-plugin'
    at Function.Module._resolveFilename (module.js:339:15)

人们发现的答案是在项目的本地安装一个或两个。但这对我没用。我需要让它在我们的共享构建系统中运行,而不仅仅是在我的开发环境中。这意味着在全球范围内安装它,以便所有项目都可以通过Jenkins运行的ant/nant构建脚本访问它。

我的项目很简单。带有脚本标记的包含在html中的reactJS脚本生成的内容的几个html页面。这应该是容易的,而且它开始是一种痛苦。考虑抛弃webpack,并寻找另一个简单的javascript包经理。

我们是否可以使用环境变量告诉webpack在全局节点'node_modules‘目录中查找'require'd plugings/packages?

有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-29 17:49:01

你不必为詹金斯在全球范围内安插webpack。在脚本下向package.json添加一个运行本地webpack的命令,如下所示:

代码语言:javascript
复制
  "scripts": {
    "start": "webpack-dev-server --inline --hot",
    "build": "webpack -p"
  },

现在Jenkins可以运行您的构建脚本,而无需安装全局webpack:

代码语言:javascript
复制
npm run build

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

脚本支柱是项目package.json的一部分。package.json包含所有依赖项和dev依赖项(构建、测试等)关于这个项目。使用构建机器上运行NPM的package.json,您可以在本地(项目dir的一部分)安装所有依赖项。webpack建造的一个角度项目的package.json示例:

代码语言:javascript
复制
{
  "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主服务器更新时,Jenkins就会提取最新的提交,清除当前的构建目录,包括所有依赖项,并在项目文件夹中运行以下命令:npm install在本地安装所有依赖项,作为项目文件夹npm run build的一部分来构建发行版。

詹金斯不知道webpack或任何其他构建工具或依赖。在Jenkins上全球安装的唯一东西是nodejs和npm。

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

代码语言:javascript
复制
rm -rf node_modules || true // remove node_modules (all deps)
npm install // install all deps
npm run build // run the build script
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36291325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档