Nouveau développeur nativescript-vue ici ...
Je reçois soudainement des erreurs de compilation tns sur chaque fichier /components/*.vue lorsque j'exécute ma routine de construction normale:
$ tns compile ios --bundle --env.config dev
ERREUR dans ./components/Startup.vue?vue&type=style&index=0&lang=css& (../node_modules/nativescript-dev-webpack/style-hot-loader.js!../node_modules/nativescript-dev-webpack /apply-css-loader.js!../node_modules/css-loader/dist/cjs.js??ref--1-2!../node_modules/vueloader/lib/loaders/stylePostLoader.js!../ node_modules / vue-loader / lib ?? vue-loader-options! ./ components / Startup.vue? vue & type = style & index = 0 & lang = css &)
La construction du module a échoué (à partir de ../node_modules/css-loader/dist/cjs.js): ValidationError: Options non valides du chargeur CSS
Les options ne doivent PAS avoir de propriétés supplémentaires
sur validateOptions (/Users/.../node_modules/css-loader/node_modules/schema-utils/src/validateOptions.js:32:11) à Object.loader (/Users/.../node_modules/css-loader/dist/index.js:44:28) @ ./components/Startup.vue?vue&type=style&index=0&lang=css& 1: 0-371 1: 387-390 1: 392-760 1: 392-760 @ ./components/Startup.vue @ ./router/index.js @ ./app.js
Cela semble être lié au UglifyJsPlugin fourni avec Nativescript. Dans mon webpack.config.js:
const UglifyJsPlugin = require("uglifyjs-webpack-plugin"); ... const config = { mode: mode, context: appFullPath, externals, ... minimize: Boolean(production), minimizer: [ new UglifyJsPlugin({ parallel: true, cache: true, uglifyOptions: { output: { comments: false, }, compress: { // The Android SBG has problems parsing the output // when these options are enabled 'collapse_vars': platform !== "android", sequences: platform !== "android", }, }, }), ],
Je ne sais pas pourquoi cela échoue. Environnement:
3 Réponses :
Je n'ai aucune expérience avec Vue, mais j'ai eu un problème similaire lorsque j'ai mis à jour les dépendances de mon projet React, en utilisant une configuration Webpack personnalisée.
CSS Loader a été mis à jour vers 3.0, et ils ont quelque peu changé leurs spécifications. Si vous avez accès à un fichier de configuration webpack, vous verrez peut-être quelque chose de similaire à ceci:
{ loader: "css-loader", options: { modules: { localIdentName: "..." } } }
Et cela devrait être changé en quelque chose comme ceci:
{ loader: "css-loader", options: { modules: true, localIdentName: "..." } }
Notez que la partie "..."
sera une sorte de motif comme "[hash: base64: 5]"
, pas littéralement un "..."
.
Ceci peut ou peut être le problème spécifique, car il y a d'autres changements de rupture en dehors de celui-là. Vous pouvez trouver la liste des modifications de configuration de dernière minute ici: https://github.com/webpack -contrib / css-loader / releases
J'espère que cela vous aidera!
Mes problèmes semblent spécifiques à uglifyjs-webpack-plugin, qui est inclus avec nativescript. Apparemment, l'activer avec --env.uglify n'aide pas. J'essaierai d'appliquer vos commentaires sur le formatage à mon propre webpack.config.js
J'ai enfin trouvé la solution, en publiant ici pour d'autres personnes qui pourraient avoir besoin d'aide. Il s'avère que, selon Nativescript , Webpack devait être mis à niveau. L'exécution de ceci a fait l'affaire et m'a permis de construire et d'exécuter à nouveau: ./node_modules/.bin/update-ns-webpack --deps --configs
Si vous utilisez la version ^ 3.0.0 de Webpack css-loader, vous devrez légèrement mettre à jour votre webpack.config.
notez le 'Ici --->' dans le code ci-dessous. J'espère que cela vous aidera.
module.exports = { entry: `${SRC_DIR}`, output: { filename: 'bundle.js', path: `${DIST_DIR}`, }, module: { rules: [ { test: /\.css$/, loader: 'style-loader', }, { test: /\.css$/, loader: 'css-loader', options: { Here---> modules: { Here---> mode: 'local', Here---> localIdentName: '[local]--[hash:base64:5]', }, }, }, ], }, resolve: { extensions: ['.js', '.jsx'], }, };
De plus, si vous travaillez avec un projet React, vous devrez peut-être mettre à jour le nom du style de votre composant. les nouvelles versions de react-scripts préfèrent la convention de dénomination des fichiers [nom] .module.css.
Ce lien explique comment. https://facebook.github.io/ create-react-app / docs / ajout-d'une-feuille-de-style-modules-css
vous semblez un développeur plus habile que moi, pourquoi supprimez-vous tous ces fichiers?
Je ne sais pas si je suis plus habile ... Je les rme juste pour m'assurer d'avoir une table rase quand je rencontre des problèmes de build.