Я не могу опубликовать точный код из-за NDA, поэтому я сделаю все возможное. Javascript не мой строковый костюм, но я взял его для своей команды.
Справочная информация:
Я создал модуль, который в основном будет выполнять очень простую задачу и может быть импортирован как зависимость в других проектах, а затем добавили в проект, добавив тег.
Я хотел, чтобы это было как можно более легким, и чтобы приложение, которое его добавляло, выполняло тяжелую работу и выполняло операции импорта и compile Angular code.
Код для SimpleApp:
Кажется, все работает нормально, за исключением мест, отмеченных /* Potential Issue */
В простом модуле у меня есть несколько file:
simpleApp. js - основной js файл, который выполняет необходимую работу
simpleApp. html - html из simpleApp. js
innerProvider. js - это module.service, который выполняет некоторую работу при вызове из simpleApp. js - этот импорт кажется более серьезной проблемой.
Все в пределах пакета компании SimplePapp:
simpleApp. js:
import angular from "angular"
/* I believe this to be the issue */
import innerProviderModule from "./pathToFile/innerProvider /* Potential Issue */
/* Potential Issue */
angular.module('simpleApp', [innerProviderModule]).component('simpleComponent, {
controller: ['$scope, 'innerProvider', ..., function($scope, innerProvider, ...) {
/* does work */
}],
template: require("./simpleApp.html"),
bindings: {
bind1: '@',
bind2: '@'
}
simpleApp. html :
<div>
do stuff
call stuff
</div>
innerProvider. js:
import angular from "angular"
const innerProviderModule = angular.module('innerProvider', [])
.service('innerProvider', function (%http, ...) {
this.doWork = function (param1) {
retStmt = doSomething(param1)
return retStmt
}
});
export default innerProviderModule.name;
Все здесь строится правильно и будет работать так, как сказано. Я могу собрать этот пакет, а также тот, который использует его, и у меня есть рабочая веб-страница со службами simpleApp. Тем не менее, это когда я сам все размещаю.
Код для более крупного сервиса с использованием SimpleApp:
В другом проекте у меня это перечислено как зависимость "simpleApp = 1.0" это может быть отличается от ожидаемого из-за внутренней работы моей компании, но это работает .
Появляется в каталоге node_module
Затем у меня есть модуль для веб-страницы, который загружается в simpleApp и имеет все остальные пакеты типа angular, babel, uglify, webpack и т. д. c:
/* Potential Issue */
import "companySimpleApp/simpleApp.js"
export default angular
.module("app", [otherDependencies, simpleApp])
.config(function ($stateProvider, $stuff){
someMappingsForUrls
});
...
<script src="../node_modules/companySimpleApp/simpleApp.js"></script>
...
и другой файл html и js, использующий simpleApp
<div>
<simpleApp bind1='{{value}}'></simpleApp>
</div>
Ошибка:
Теперь все будет нормально работать на моем локальном хосте, и я могу полностью использовать более крупный сервис, используя сайт SimpleApp с simpleApp. Тем не менее, когда я строю это (npm run webpack
) на сервисе с использованием simpleApp, я получаю следующую ошибку, даже если на моем локальном хосте все работает нормально:
ERROR in bundle.js from UglifyJs
Invalid assignment [bundle.js:146461,67]
npm ERR! code ELIFECYCLE
npm ERR! errno 2
npm ERR! @ webpack: `webpack -p`
npm ERR! Exit status 2
npm ERR!
npm ERR! Failed at the @ webpack script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
........
При удалении кода создается код import innerProviderModule from "./pathToFile/innerProvider
из simpleApp.js
, но затем я получаю сообщение об ошибке, говорящее о том, что innerProvider - это неразрешенная ссылка или что-то в этом роде.
Я прошу дать некоторую помощь о том, почему я вижу эту ошибку, когда Я импортирую созданный мной модуль innerProviderModule. Нужно ли мне добавлять веб-пакет и все такое в мой проект simpleApp, хотя на моем локальном хосте все работает нормально?
Любая помощь или идеи очень ценятся. Спасибо! Подняв это, поскольку я отправил это поздно ночью.
Редактировать: Кажется, что не похоже на "=>" в innerProvider, который у меня есть