Uncaught ReferenceError: требование не определено Webpack + AngularJS - PullRequest
0 голосов
/ 26 ноября 2018

Есть десятки и десятки вопросов, подобных этому, и ни один из них не помог, потому что первопричину всегда я не делаю.Я делаю пакет для браузера с веб-пакетом 4.26.1, и я продолжаю получать Uncaught ReferenceError: require is not defined, когда открываю веб-приложение в браузере, независимо от того, что я делаю.

Я не использую target: 'node'.

Мне не требуется webpack-node-externals.

Я явно не исключаю ничего из пакета.

Я не использую noParse.

Я даже пытался явно установить target: 'web', хотя это значение по умолчанию, просто чтобы посмотреть, изменилось ли что-нибудь.

Это полная моя webpack.config.json:

const path = require('path');

module.exports = {
  mode: 'production',
  entry: './src/main/webapp/resources/app/template.core.js',
  output: {
    filename: 'bundle.js',
    path: path.resolve(__dirname, 'src/main/webapp/resources/dist')
  }
};

Это мой пакет. Json

{
  (...)
  "main": "src/main/webapp/template.core.js",
  "dependencies": {
    "angular": "^1.6.10",
    "angular-animate": "^1.6.10",
    "angular-route": "^1.6.10",
    "angular-sanitize": "^1.6.10",
    "angular-upload": "^1.0.13",
    "ui-select": "^0.19.8",
    "angular-ui-bootstrap": "^2.5.0",
    "moment": "2.22.2"
  },
  "devDependencies": {
    "npm": "^5.6.0",
    "webpack": "^4.26.1",
    "webpack-cli": "^3.1.2",
    "jshint": "^2.9.6"
  },
  "scripts": {
    "lint": "jshint src/main/webapp --exclude src/main/webapp/resources/static,src/main/webapp/resources/dist",
    "build": "webpack"
  },
  (...)
}

Что я делаю не так?

1 Ответ

0 голосов
/ 12 декабря 2018

Для дальнейшего использования моя проблема была чем-то таким же базовым, как неправильное включение <script> в html, потому что из-за конфигураций моего веб-пакета имена пакетов различны для режимов разработки и производства.Сейчас я использую html-webpack-plugin для генерации включений, при этом мой файл шаблона представляет собой пустой файл с комментарием, поэтому он не выводит ничего, кроме самих тегов сценария.Вот как это выглядит у меня webpack.config.js:

var HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {

  ...

  plugins: [
    new HtmlWebpackPlugin({
      template: 'path/to/empty/template',
      filename: 'path/to/templated/output'
    })
  ],

  ...

};
...